1.二维数组转成字典

  1. users = [
  2. ["admin",123456],
  3. ["test",456789],
  4. ["xiaohei","abc123"],
  5. ]

第一种方式:使用循环的方式
i 中存的值时列表类型,使用解包的方式,把i 赋给把key和value

  1. for i in users:
  2. key,value = i
  3. d_users[key] = value

第二种方式:直接使用字典
users_d = dict(users )

2.非空即真,非0即真

  1. for line in f:
  2. line = line.strip()
  3. if line: # 如果没有空行
  4. pass

3.列表切片

只有有下标,都可以通过切片来取值
注意,切片取值的时候,是顾头不顾尾,默认步长为1

  1. names = ['sara', 'john', 'alex', 'michkle']

1)取出列表中的前3个数据,以下两种方式都可以

  1. print(names[:3])
  2. print(names[0:3])

2)从某个位置取值,一直取到最后,最后一个元素可以不用写

  1. print(names[2:]) # ['alex', 'michkle']

3)取最后一个值

  1. print(names[-1]) # michkle

4)按照步长来取值[start:end:step]

  1. print(names[::2]) # 每隔一个元素取一个值,步长为2

5)如果步长为负数,取值方式从右往左

  1. print(names[::-1]) # ['michkle', 'alex', 'john', 'sara']

4.集合

集合天生去重,集合是无序的

  1. s = [1, 1, 11, 3, 4, 3]
  2. s1 = [2, 3, 4, 12, 2]
  3. s = set(s) # {3, 1, 11, 4}
  4. s1 = set(s1) # {2,3,4,12}

1.取交集

  1. print(s.intersection(s1)) # {3, 4}
  2. print(s & s1)

2.取并集

  1. print(s.union(s1)) # {1, 2, 3, 4, 11, 12}
  2. print(s | s1)

3.取差集

  1. print(s.difference(s1)) # 在s中集合中存在但在s1中不存在的值
  2. print(s - s1) # {1, 11}
  3. print(s1 - s) # {2, 12}

4.对称差集

  1. # 对称差集 s里面有,s1里面没有,s1里面有,s里面没有
  2. print(s.symmetric_difference(s1))
  3. print(s ^ s1) # {1, 2, 11, 12}

5.判断一个集合是否是另外一个集合的子集

  1. s2 = {2, 3}
  2. print(s2.issubset(s1))

6.集合的添、删除、循环

  1. s2.add(5) # 添加
  2. s2.remove(5) # 删除
  3. s2.update({1, 7}) # 把一个集合加入到另外一个集合里面
  4. for s in s2:
  5. print(s)

5.列表生成式

1)把列表中的字符串自动加两个0,使用zfill函数

  1. nums = list(range(1,11))
  2. new_nums = []
  3. for n in nums:
  4. if n%2==0:
  5. new_n = str(n).zfill(2)
  6. new_nums.append(new_n)
  7. print(new_nums)
  8. # ['02', '04', '06', '08', '10']

2)用列表生成式实现

  1. nums = list(range(1,11))
  2. new_nums = [str(n).zfill(2) for n in nums if n%2==0]
  3. print(new_nums)
  1. ret = [{
  2. 'channelCode': '11',
  3. 'channelMinMoney': 50000,
  4. 'groupMinMoney': 100,
  5. 'userLimitDayMoney': 500000
  6. }, {
  7. 'channelCode': '12',
  8. 'channelMinMoney': 50000,
  9. 'groupMinMoney': 100,
  10. 'userLimitDayMoney': 500000
  11. }, {
  12. 'channelCode': '09',
  13. 'channelMinMoney': 50000,
  14. 'groupMinMoney': 100,
  15. 'userLimitDayMoney': 100000000
  16. }]
  17. channelCode = [int(channel.get("channelCode")) for channel in ret]
  18. # channelCode = [25, 32, 38]

6.字符串、列表相互转换

1.list转string

“ “.jion(str), jion分割的必须是字符串!!,如果传入的列表内都是str则没问题,但我们传的列表内是含有int的!所以会报类型错误!

  1. 命令:''.join(list)
  2. 其中,引号中是字符之间的分割符,如“,”,“;”,“\t”等等
  3. 如:
  4. list1 = [1, 2, 3, 4, 5]
  5. print(''.join('%s' %id for id in list1)) 结果即为:12345
  6. print(','.join('%s' %id for id in list1)) 结果即为:1,2,3,4,5
  7. print(("*"*20+'\n').join(list1))
  8. list2 = [a,b,c]
  9. print(''.join(list2))

2.string转list

  1. a = "abc"
  2. l = list(a)
  3. # ['a', 'b', 'c']

7.一维数组和二维数组相互转换

  1. data = ['1235235,235235', '1235235,2352352', '1235235,235235', '1235235,235235']
  2. newData = []
  3. for i in data:
  4. newData.append(i.split(','))
  5. print(newData)
  6. newData1 = [i.split(',') for i in data]
  7. print(newData1)
  8. data1 = [['1235235', ], ['1235235', ], ['1235235', ], ['1235235',], ['1235235',]]
  9. newDa = []
  10. for i1 in data1:
  11. for i2 in i1:
  12. newDa.append(i2)
  13. print(newDa)
  14. newData2 = [i for arr in data1 for i in arr]
  15. print(newData2)