列表、集合的相关练习

 

1、有列表data = ['egon', 73, [1900, 3, 18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量

data = ['egon',73,[1900,3,18]]
name = data[0]
age = data[1]
birth = data[2]
year_of_birth = birth[0]
month_of_birth = birth[1]
day_of_birth = birth[2]

 

2、用列表模拟队列

queue = []     #定义一个空列表,当做队列
queue.insert(0,1)   #向列表第一位中插入1
queue.insert(0,2)   #向列表第一位中插入2,原先的1变为第二位
queue.insert(0,"hello")   #向列表第一位中插入字符串"hello",原先的顺序都往后移动
print(queue)
print('取第一个元素',queue.pop())
print('取第二位元素',queue.pop())
print('取第三位元素',queue.pop())

注意这个总是往前面插入字符,最后一位是进的第一位数,是出的第一位数。

 

3、用列表模拟堆栈

栈是一种“先进后出”的数据结构,可以用python内置的列表实现它。

栈有两个最基本的操作:

入栈:

stack = [3,4,5]    
stack.append(6)   #数字6进栈
stack.append(7)   #数字7进栈

出栈

stack.pop()  #数字7出栈
stack.pop()  #数字6出栈

 

 

4、有如下值集合[11, 22, 33, 44, 55, 66, 77, 88, 99, 90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

即:{'k1': 大于66的所有值, 'k2': 小于66的所有值}

l1 = [11,22,33,44,55,66,77,88,99,90]
dic = {}
list_1 = []   #大于66
list_2 = []   #小于66
for i in l1:    
   if i ==66:        
       continue    
   if i > 66:        
       list_1.append(i)    
   else:            
       list_2.append(i)
dic.setdefault('k1',list_1)
dic.setdefault('k2',list_2)
print(dic)

 

5、统计s='hello tank tank say hello sb sb'中每个单词的个数

s = "hello tank tank say hello sb sb"
dic1 = {}
w = s.split()
for i in w:
   num = w.count(i)
   dic1[i] = num
print(dic1)

结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}

 

6、有列表l = ['a', 'b', 1, 'a', 'a'],去重,得到新列表,且新列表无需保持列表原来的顺序

l = ['a', 'b', 1, 'a', 'a']
l1 = set(l)
print(l1)
l2 = list(l1)
print(l2)

 

 

7、有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合:

pythons = {'egon', 'kevin', 'echo', 'owen', 'jason'}
linuxs = {'egon', 'echo', 'tank', 'oscar'}

"""
1. 求出即报名python又报名linux课程的学员名字集合
2. 求出所有报名的学生名字集合
3. 求出只报名python课程的学员名字
4. 求出没有同时这两门课程的学员名字集合
"""
  1. 求出即报名python又报名linux课程的学员名字集合

pythons = {'egon', 'kevin', 'echo', 'owen', 'jason'}
linuxs = {'egon', 'echo', 'tank', 'oscar'}

print(pythons & linuxs)

2.求出所有报名的学生名字集合

pythons = {'egon', 'kevin', 'echo', 'owen', 'jason'}
linuxs = {'egon', 'echo', 'tank', 'oscar'}
print(pythons | linuxs)
  1. 求出只报名python课程的学员名字

    pythons = {'egon', 'kevin', 'echo', 'owen', 'jason'}
    linuxs = {'egon', 'echo', 'tank', 'oscar'}
    print(pythons - linuxs)
  2. 求出没有同时这两门课程的学员名字集合

linuxs = {'egon', 'echo', 'tank', 'oscar'}
print(pythons ^ linuxs)

 

posted @ 2019-11-06 20:55  medigrat  阅读(181)  评论(0编辑  收藏  举报