# 元素 in 列表 -- 判断列表中是否存在指定元素# 元素 not in 列表 -- 判断列表中是否不存在指定元素
students =['张三','李四','小花']print('小明'in students)# Falseprint('张三'in students)# True# 练习1:有一个长度是10的列表,数组内有10个人名,要求去掉重复的
names =['张三','李四','大黄','大黄','张三','张三','张三']
new_names =[]for name in names:if name notin new_names:
new_names.append(name)else:print(new_names)# ['张三', '李四', '大黄']# 练习2:有两个列表A和B,使用列表C来获取两个列表中公共的元素
A =[1,'a',4,90,'a',25]
B =['a',8,'j',1,'a']
C =[]for x in A:if x in B and x notin C:
C.append(x)print(C)# 练习3:判断x是否是数字或者字符串
x ='ans'print(type(x)==intortype(x)==floatortype(x)==str)print(type(x)in[int,float,str])# 练习4:判断是否是3月、7月、8月或者11月
month =3print(month ==3or month ==7or month ==8or month ==11)print(month in(3,7,8,11))# in操作的逻辑# item = 10# nums = [20, 34, 9, 10]# for x in nums:# if x == item:# print(True)# break
# 所有的序列可以转换列表,转换的时候是将序列中的元素转换成列表的元素
result =list('abc123')print(result)# ['a', 'b', 'c', '1', '2', '3']
result =list(range(10,15))print(result)# [10, 11, 12, 13, 14]# result = list(19) # 19不是序列 'int' object is not iterable
"""
1)结构一 -- 对序列中的元素进行统一变换得到一个新的列表
[表达式 for 变量 in 序列]
"""
result =[10for x inrange(4)]print(result)# [10, 10, 10, 10]
result =[x*2for x inrange(4)]print(result)# [0, 2, 4, 6]# 练习1:使用列表推导式,提取列表中元素的十位数# [5, 3, 9, 5, 5]
nums =[56,738,92,351,50]
result =[x //10%10for x in nums]print(result)# 练习2:将list1中的元素下标是0的元素全部取出来# [10, -20, 9, 80]
list1 =[[10,20],[-20,30],[9,120],[80,-100]]
result =[x[0]for x in list1]print(result)
结构二
"""
2)结构二 -- 筛选和变换
[表达式 for 变量 in 序列 if 条件语句]
"""
result =[x*2for x inrange(5)if x %2]print(result)# [2, 6]# 练习1: 利用列表推导式,将nums中所有的偶数提取出来# [34, 56, 12]
nums =[19,34,56,77,9,12]
result =[x for x in nums if x %2==0]print(result)# 练习2:利用列表推导式,将nums中所有的数字提取出来# [12, 2.34, 9]
nums =[12,2.34,'abc',9,'009']
result =[x for x in nums iftype(x)in(int,float)]# type(x) == int or type(x) == floatprint(result)# 练习3:利用列表推导式,将nums中所有奇数的个位数提取出来# [9, 7, 1]
nums =[19,34,56,77,91,12]
result =[x %10for x in nums if x %2==1]print(result)# 练习4:利用推导式将列表中所有的偶数除以2,奇数不变
nums =[19,34,56,77,91,12]
result =[x if x %2else x//2for x in nums]# 三目运算符print(result)# [19, 17, 28, 77, 91, 6]# 练习5:将列表中所有的数字除以10, 如果不是数字就不动# [3.4, 0.345, 'abc', 8.9, '12', 0.9]
list1 =[34,3.45,'abc',89,'12',9]
result =[x iftype(x)notin(int,float)else x/10for x in list1]print(result)# [3.4, 0.34500000000000003, 'abc', 8.9, '12', 0.9]