python有数字、字符串、列表、元组、集合、字典六种数据类型。
数字
包含整数、浮点数、None、布尔型、复数五种。
整数
num1=10
print(num1)
#10
浮点数
num1=10.2
print(num1)
#10.2
None
num1=None
print(num1)
# None
复数
c1 = 12 + 0.2j
print(c1)
# (12+0.2j)
字符串
字符串用引号括起来,可以是单英文引号,也可以是双英文引号。
字符串可以写成单行的形式,也可以写成多行的形式。
单个引号可以创建单行的字符串
3个引号可以创建单行或多行的字符串,当3个引号创建字符串时,字符串里面可以包含引号,但是与创建字符串的引号不能一样。代码如下
str1='''花花是个"女孩子"'''
print(str1)
# 花花是个"女孩子"
str1="""花花是个'女孩子'"""
print(str1)
#花花是个'女孩子'
列表list
使用[]创建,各个数据项用英文逗号(,)分割开,各个数据项的类型可以不一样。
特点可修改、有序、可重复。
list1=["s1",2]
print(list1)
# ["s1",2]
元组tuple
使用()创建,各个数据项用英文逗号(,)分割开,各个数据项的类型可以不一样。
特点不可修改、有序、可重复。
tuple1=(1,2,"1",1)
print(tuple1)
#(1, 2, '1', 1)
集合set
使用{}创建非空集合,生成空集合使用set(),使用set(列表或元组)可去重,各个数据项用英文逗号(,)分割开,各个数据项的类型可以不一样。
特点可修改、无序、不可重复。
# 使用set对元组去重
tuple1=(2,1,"2",2)
print(set(tuple1) )
# {1, 2, '2'}
# 使用set对列表去重
list1=[1,2,3,4,5,1]
print(set(list1))
# {1, 2, 3, 4, 5}
# 创建空集合
set1=set()
print(set1)
# set()
# 创建空集合
set1={1,2,4,3,1}
print(set1)
# {1, 2, 3, 4}
字典dict
使用{}、dict、collections包中的defaultdict创建字典,字典中的元素都是"键(key):值(value)"对, “键”和“值”之间用冒号隔开,所有“键值对”放在一对大括号“{}”中,元素之间用逗号分隔。
特点可修改、无序、主键不可重复。
# 使用{}创建字典
d1={"name":"花花","age":3}
print(d1)
# {'name': '花花', 'age': 3}
# 使用{}创建空字典,并往里面添加元素
d2={}
d2["name"]="花花"
d2["age"]=3
print(d2)
# {'name': '花花', 'age': 3}
# 使用dict创建字典
d3=dict(name="花花",age=3)
print(d3)
# {'name': '花花', 'age': 3}
# 使用dict创建字典
d4=dict([("name","花花"),("age",3)])
print(d4)
# {'name': '花花', 'age': 3}
注意点
使用[]的形式去取字典里面的值,当key不存在时会报错。可以实用get()去取值,当key不存在,设置默认值。
使用[]的形式可以往字典里添加元素
# 使用{}创建空字典,并往里面添加元素
d2={}
d2["name"]="花花"
d2["age"]=3
print(d2)
# {'name': '花花', 'age': 3}
# 取不存在的key,使用get
print(d2.get("gender","key不存在"))
# key不存在
# 取不存在的key会报KeyError
print(d2["gender"])
# KeyError: 'gender'
collections创建字典的妙用
使用方法:collections.defaultdict([default_factory[, …]])。
使用{}或者dict的方式创建字典,使用[]的形式去取字典里面的值,当key不存在时会报KeyError,但如果使用collections创建字典,当key不存在的时候
如果default_factoryNone,就报KeyError
如果default_factory不为None,不报KeyError。
创建列表字典defaultdict(list)
from collections import defaultdict
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
d[k].append(v)
a = d.items()
print(a)
创建计数字典defaultdict(int)
from collections import defaultdict
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(int)
for k, v in s:
d[k]+=v
a = d
print(a)
# defaultdict(<class 'int'>, {'yellow': 4, 'blue': 6, 'red': 1})
创建集合字典defaultdict(set)
value的值不是重复的
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1),('yellow', 1), ]
d = defaultdict(set)
for k, v in s:
d[k].add(v)
a = d
print(a)
# defaultdict(<class 'set'>, {'yellow': {1, 3}, 'blue': {2, 4}, 'red': {1}})