数字

int(整型)

  1. age = 22
  2. money = 88888888888888

long(长整型)

  1. - python2.2起,如果整数发生溢出,python会自动将整数数据转换为long
  2. - python3以后只有int类型
  1. # python2 64bit
  2. >>> 2**62
  3. 4611686018427387904
  4. >>> 2**63
  5. 9223372036854775808L #自动转成long
  6. #python3
  7. >>>2**100
  8. 1267650600228229401496703205376

float(浮点型)

  1. height = 1.74
  2. money = 2.3E4 # 23000.0

complex(复数)

bool 布尔

  1. #只有两个值
  2. True
  3. False

bool运算为false的情况

  • 空字典 {}
  • 空列表 []
  • 空元组 ()
  • 空字符串 ‘’
  • 数字零 0

list 列表

  1. # 定义列表
  2. >>> names = ['zhangsan', 'lishi', 'wangwu', 'zhaoliu']
  3. # ------索引------
  4. >>> names.index('lishi')
  5. 1
  6. >>> names[1]
  7. 'lishi'
  8. # ------追加-------
  9. >>> names.appen('tianqi')
  10. >>> names
  11. ['zhangsan', 'lishi', 'wangwu', 'zhaoliu', 'tianqi']
  12. # ------插入-------
  13. >>> names.insert(3, 'lishi')
  14. >>> names
  15. ['zhangsan', 'lishi', 'wangwu', 'lishi', 'zhaoliu', 'tianqi']
  16. # extend
  17. >>> l1 = ['a','b','c']
  18. >>> l2 = ['c','d','e']
  19. >>> l1.extend(l2)
  20. >>> l1
  21. ['a', 'b', 'c', 'c', 'd', 'e']
  22. # reverse 反转
  23. >>> ls = ['b','a','d','e','c']
  24. >>> ls.reverse()
  25. >>> ls
  26. ['c','e','d','a','b']
  27. # sort 排序
  28. >>> ls.sort() #排序,ascii表排序
  29. >>> ls
  30. ['a','b','c','d','e']
  31. >>> ls = [1,3,'a','b']
  32. >>> ls.sort() #error python3字符串和int不能排序
  33. # 统计某个元素个数
  34. >>> names.count('lishi')
  35. 2
  36. >>>names.count('zhangsan')
  37. 1
  38. # -------删除-------
  39. #pop
  40. >>> names.pop() # 删除最后一个 并返回
  41. 'tianqi'
  42. >>> names.pop(1)# 删除索引为1的元素,并返回
  43. 'lishi'
  44. >>> names
  45. ['zhangsan', 'wangwu', 'lishi', 'zhaoliu']
  46. #remove
  47. >>> names.remove('wangwu')
  48. >>> names
  49. ['zhangsan', 'lishi', 'zhaoliu']
  50. #clear 清空list
  51. >>> names.clear()
  52. >>> names
  53. []
  54. #del
  55. >>> del(names[1])
  56. >>> names
  57. ['zhangsan', 'zhaoliu']
  58. # 长度
  59. >>> len(names)
  60. 2
  61. # 切片 同字符串
  62. >>> names = ['zhangsan', 'lishi', 'wangwu', 'zhaoliu']
  63. >>> names[1:3]
  64. ['lishi', 'wangwu']
  65. >>> names[::2]
  66. ['zhangsan', 'wangwu']

dictionary 字典

  • dict是无序的
  • key必须是唯一的,天生去重
  1. # 定义字典
  2. >>> dic = {'name': '张三', 'age': 22}
  3. >>> dic
  4. {'name': '张三', 'age': 22}
  5. """增"""
  6. >>> dic['money'] = 5555
  7. >>> dic
  8. {'name': '张三', 'age': 22, 'money': 5555}
  9. """改"""
  10. >>> dic['age'] = 28
  11. >>> dic
  12. {'name': '张三', 'age': 28, 'money': 5555}
  13. >>> dic2 = {'age':30, 'nationality':'china'}
  14. # update 合并两个字典,如果元字典中已存在的key 值将被修改,原字典中key不存在则添加
  15. >>> dic.update(dic2)
  16. >>> dic
  17. {'name': '张三', 'age': 30, 'money': 5555, 'nationality': 'china'}
  18. """查"""
  19. >>> 'age' in dic
  20. True
  21. >>> dic['age']
  22. 30
  23. >>> dic['hobby'] #获取没有的 报错
  24. Traceback (most recent call last):
  25. File "<stdin>", line 1, in <module>
  26. KeyError: 'hobby'
  27. # get
  28. >>> dic.get('money')
  29. 5555
  30. >>> dic.get('hobby') #没有找到,不会报错,并可设置默认值
  31. >>> dic.get('hobby','爱好女')
  32. '爱好女'
  33. """删除"""
  34. #pop 删除指定key的元素
  35. >>> dic.pop('money') #删除指定key 的项,并将值返回
  36. 5555
  37. >>> dic
  38. {'name': '张三', 'age': 28}
  39. #popitem 随机删除
  40. >>> dic.popitem() # 随机删除
  41. ('age', 28)
  42. """其他"""
  43. >>> dict = {'a':1,'b':2,'c':3,'d':4}
  44. # keys 返回list 字典所有key
  45. >>> dict.keys() # 返回所有key组成的list
  46. dict_keys(['a', 'b', 'c', 'd'])
  47. # values 返回list 字典所有value
  48. >>> dict.values() # 返回所有value
  49. dict_values([1, 2, 3, 4])
  50. >>> dict.items() #将key 和 value 组合成元组
  51. dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
  52. # 快速使用列表元素为key的字典
  53. >>> l = ['k1','k2','k3','k4']
  54. >>> d = {}
  55. >>> d2 = d.fromkeys(l, {})
  56. >>> d2
  57. {'k1': {}, 'k2': {}, 'k3': {}, 'k4': {}}

tuple 元组

不能修改的list
只有list的查询功能,不能修改、删除、添加操作

set 集合

无序 去重

关系运算

交集 intersection &

  1. >>> s1 = {1,2,3,4,5}
  2. >>> s2 = {4,5,6,7}
  3. >>> s1.intersection(s2)
  4. {4, 5}
  5. >>> s1 & s2
  6. {4, 5}

差集 difference -

  1. >>> s1 = {1,2,3,4,5}
  2. >>> s2 = {4,5,6,7}
  3. >>> s1.difference(s2)
  4. {1, 2, 3}
  5. >>> s1 - s2
  6. {1, 2, 3}
  7. >>> s2.difference(s1)
  8. {6, 7}
  9. >>> s2 - s1
  10. {6, 7}

并集 union |

  1. >>> s1 = {1,2,3,4,5}
  2. >>> s2 = {4,5,6,7}
  3. >>> s1.union(s2)
  4. {1, 2, 3, 4, 5, 6, 7}
  5. >>> s1 | s2
  6. {1, 2, 3, 4, 5, 6, 7}

反向差集(对称差集) symmetric_difference ^

  1. >>> s1 = {1,2,3,4,5}
  2. >>> s2 = {4,5,6,7}
  3. >>> s1.symmetric_difference(s2)
  4. {1, 2, 3, 6, 7}
  5. >>> s1 ^ s2
  6. {1, 2, 3, 6, 7}

方法

方法 说明
update 合并两个集合 并赋值
clear 清空
add 增加
copy 浅拷贝
difference_update 将集合的值改为他们的差集
discard 删除 元素不存在 不会报错
pop 随机删除
remove 删除 元素不存在 会报错
issubset 判断是否是子集 <
issuperset 判断是否是超集(父集) >
isdisjoint 两个集合没有交集 True

拷贝

浅拷贝

image.png

  1. >>> l1 = [1,2,'a',[5,6,7]]
  2. >>> l2 = l1.copy()
  3. >>> l2[1] = 4
  4. >>> l1
  5. [1, 2, 'a', [5, 6, 7]]
  6. >>> l2
  7. [1, 4, 'a', [5, 6, 7]]
  8. >>> l2[3][0] = 10
  9. >>> l1
  10. [1, 2, 'a', [10, 6, 7]]
  11. >>> l2
  12. [1, 4, 'a', [10, 6, 7]]

深拷贝

image.png

  1. >>> import copy
  2. >>> l1 = [1,2,'a',[5,6,7]]
  3. >>> l2 = copy.deepcopy(l1)
  4. >>> l2[1] = 4
  5. >>> l1
  6. [1, 2, 'a', [5, 6, 7]]
  7. >>> l2
  8. [1, 4, 'a', [5, 6, 7]]
  9. >>> l2[3][0] = 10
  10. >>> l1
  11. [1, 2, 'a', [5, 6, 7]]
  12. >>> l2
  13. [1, 4, 'a', [10, 6, 7]]

进制

  • 二进制
    01
  • 八进制
    oct() 0~7
  • 十六进制
    0~9ABCDEF
    hex()