python 列表/元祖/字典基础点汇总
1. list
列表非常适合用于存储在程序运行期间可能变化的数据集
1.1 list 新增元素
names = ["zhang","cheng","li"] #在列表末尾添加元素 names.append('liu') #在列表中插入元素,指定索引和值 names.insert(2,"chen")
1.2 list 修改元素
names = ["zhang","cheng","li"] #重新赋值 names[-1] = "yong" print(names)
1.3 list 删除元素
names = ["zhang","cheng","li","liu"] # 删除指定位置的元素,del del names[1] #pop()删除元素,默认删除尾部 names.pop() #pop()可删除指定位置的元素 names.pop(0) #根据值删除元素,remove() names.remove('liu')
⚠️方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要 使用循环来判断是否删除了所有这样的值
⚠️pop()函数返回值是删除的那个元素(可加以利用),remove()返回值 None
1.4 list 排序
names = ["zhang","cheng","li","liu"] #正序排列 names.sort() #逆序排列 names.sort(reverse=True) #逆序排列 names.reverse() #临时排序 sorted(names) #还是原来的顺序 print(names) #列表长度 print(len(names))
⚠️len() 和 sorted() 都是列表作为函数的参数,而其他的函数是作为list的一个内置函数
1.5 数值列表
#生成列表 numls = list(range(1,10)) print(numls) #等差数列,差值2 for i in range(1,10,2): print(i*i) #列表中最小的 print(min(numls)) #列表中最大的 print(max(numls)) #列表数值之和 print(sum(numls))
1.6 列表解析
#列表解析 #要求:列出1~10的数字 ls = [i for i in range(1,10) ] print(ls) #要求:列出1~10所有偶数数字的平方 ls = [i*i for i in range(1,10) if i%2==0] print(ls) #要求:列出"/var/log"中所有已'.log'结尾的文件 import os file = [ file for file in os.listdir(os.getcwd()) if file.endswith('.py') ] print(file) #要求:实现两个列表中的元素逐一配对。 print([(i,j) for i in ['x','y','z'] for j in ['a','b','c'] ]) #要求:使用列表解析生成 9*9 乘法表 print('\n'.join([''.join(['%s*%s=%-2s '%(y,x,x*y)for y in range(1,x+1)])for x in range(1,10)]))
⚠️上述的语句中乘法表已经不利于阅读了,所以不建议,可以采取下述方案
for i in range(1,10): for j in range(1,i+1): print(str(i) + '*' + str(j) +'=' + str(i*j) ,end='\t') print()
1.7 列表切片
#切片 names = ["zhang","cheng","li","liu"] print(names[0:2]) print(names[1:3]) #不指定第一个索引,则从头开始取 print(names[:2]) #不指定最后一个索引,则止于列表末尾 print(names[1:]) #从倒数第几个取到末尾 print(names[-2:])
运行结果:

⚠️复制一个列表时,如果要生成副本的样式,则需要用到切片,否则只是重定向了,还是同一份内容
names = ["zhang","cheng","li","liu"] other_names = names[:] names.append("chen") print(other_names) names = ["zhang","cheng","li","liu"] other_names = names names.append("chen") print(other_names)
输出结果分别为:

2. 元祖
不可变的列表被称为元组,用()
2.1 元祖的赋值
du = ('fan','peng','li') print(du[0]) #不支持给元祖元素更新值,但是可以给元祖变量赋值 du = ('chen','cong') print(du)
运行结果:

3. dict
3.1 增删改查字典
#创建一个空字典 zhuzi = {} zhuzi['name'] = 'zhuzi' zhuzi['age'] = 18 zhuzi['job'] = "UI" zhuzi['home'] = '海南' print(zhuzi) #修改字典的值 zhuzi['age'] = 20 for k ,v in zhuzi.items(): print(k.title() +':\t' + str(v)) #删除一个键值对 del zhuzi['name'] print(zhuzi)
3.2 遍历字典
zhuzi = {'name': 'zhuzi', 'age': 18, 'job': 'UI', 'home': '海南'}
#遍历元素
for k ,v in zhuzi.items():
    print(k.title() +':\t' + str(v))
#遍历键值
for k in zhuzi.keys():
    print(k+'-'+str(zhuzi[k]))
#按顺序遍历字典中的所有键
print('按顺序遍历字典中的所有键')
for k in sorted(zhuzi.keys()):
    print(k+'-'+str(zhuzi[k]))
4. 用户输入和while
###用户输入 while True: get_input = input('请输入你想输入的内容(输入exit()退出):') print("你输入的是:"+get_input) if get_input == 'exit()': break # 使用int获取数字 data = int(input("请输入数值:")) print(data) #判断输入是否10 的倍数 if data % 10 == 0: print(str(data) + "是10的倍数") else: print(str(data) + "不是10的倍数")
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号