1.二维数组转成字典
users = [
["admin",123456],
["test",456789],
["xiaohei","abc123"],
]
第一种方式:使用循环的方式
i 中存的值时列表类型,使用解包的方式,把i 赋给把key和value
for i in users:
key,value = i
d_users[key] = value
第二种方式:直接使用字典
users_d = dict(users )
2.非空即真,非0即真
for line in f:
line = line.strip()
if line: # 如果没有空行
pass
3.列表切片
只有有下标,都可以通过切片来取值
注意,切片取值的时候,是顾头不顾尾,默认步长为1
names = ['sara', 'john', 'alex', 'michkle']
1)取出列表中的前3个数据,以下两种方式都可以
print(names[:3])
print(names[0:3])
2)从某个位置取值,一直取到最后,最后一个元素可以不用写
print(names[2:]) # ['alex', 'michkle']
3)取最后一个值
print(names[-1]) # michkle
4)按照步长来取值[start:end:step]
print(names[::2]) # 每隔一个元素取一个值,步长为2
5)如果步长为负数,取值方式从右往左
print(names[::-1]) # ['michkle', 'alex', 'john', 'sara']
4.集合
集合天生去重,集合是无序的
s = [1, 1, 11, 3, 4, 3]
s1 = [2, 3, 4, 12, 2]
s = set(s) # {3, 1, 11, 4}
s1 = set(s1) # {2,3,4,12}
1.取交集
print(s.intersection(s1)) # {3, 4}
print(s & s1)
2.取并集
print(s.union(s1)) # {1, 2, 3, 4, 11, 12}
print(s | s1)
3.取差集
print(s.difference(s1)) # 在s中集合中存在但在s1中不存在的值
print(s - s1) # {1, 11}
print(s1 - s) # {2, 12}
4.对称差集
# 对称差集 s里面有,s1里面没有,s1里面有,s里面没有
print(s.symmetric_difference(s1))
print(s ^ s1) # {1, 2, 11, 12}
5.判断一个集合是否是另外一个集合的子集
s2 = {2, 3}
print(s2.issubset(s1))
6.集合的添、删除、循环
s2.add(5) # 添加
s2.remove(5) # 删除
s2.update({1, 7}) # 把一个集合加入到另外一个集合里面
for s in s2:
print(s)
5.列表生成式
1)把列表中的字符串自动加两个0,使用zfill函数
nums = list(range(1,11))
new_nums = []
for n in nums:
if n%2==0:
new_n = str(n).zfill(2)
new_nums.append(new_n)
print(new_nums)
# ['02', '04', '06', '08', '10']
2)用列表生成式实现
nums = list(range(1,11))
new_nums = [str(n).zfill(2) for n in nums if n%2==0]
print(new_nums)
ret = [{
'channelCode': '11',
'channelMinMoney': 50000,
'groupMinMoney': 100,
'userLimitDayMoney': 500000
}, {
'channelCode': '12',
'channelMinMoney': 50000,
'groupMinMoney': 100,
'userLimitDayMoney': 500000
}, {
'channelCode': '09',
'channelMinMoney': 50000,
'groupMinMoney': 100,
'userLimitDayMoney': 100000000
}]
channelCode = [int(channel.get("channelCode")) for channel in ret]
# channelCode = [25, 32, 38]
6.字符串、列表相互转换
1.list转string
“ “.jion(str), jion分割的必须是字符串!!,如果传入的列表内都是str则没问题,但我们传的列表内是含有int的!所以会报类型错误!
命令:''.join(list)
其中,引号中是字符之间的分割符,如“,”,“;”,“\t”等等
如:
list1 = [1, 2, 3, 4, 5]
print(''.join('%s' %id for id in list1)) 结果即为:12345
print(','.join('%s' %id for id in list1)) 结果即为:1,2,3,4,5
print(("*"*20+'\n').join(list1))
list2 = [a,b,c]
print(''.join(list2))
2.string转list
a = "abc"
l = list(a)
# ['a', 'b', 'c']
7.一维数组和二维数组相互转换
data = ['1235235,235235', '1235235,2352352', '1235235,235235', '1235235,235235']
newData = []
for i in data:
newData.append(i.split(','))
print(newData)
newData1 = [i.split(',') for i in data]
print(newData1)
data1 = [['1235235', ], ['1235235', ], ['1235235', ], ['1235235',], ['1235235',]]
newDa = []
for i1 in data1:
for i2 in i1:
newDa.append(i2)
print(newDa)
newData2 = [i for arr in data1 for i in arr]
print(newData2)