最近一直在用python做一些实验,都是一边百度一边写代码,最后代码是写完了,可是回过头一想,感觉知识很零碎。没有构成体系,所以决定写个系列博客,把一些基础知识梳理记录下来,主要是帮助自己加深理解,构建起系统的知识体系,从数据类型开始吧。版本为python3.6
Python标注数据类型
Python在使用的时候,给人最大的感觉就是不用去管复杂的数据类型,极为方便。
Python一共定义了五种标准数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Numbers(数字)
Numbers一共支持四种数字类型:
int(有符号整型) e: 2
long(长整型) e: 6778L
float(浮点数) e: 3.888
complex(复数) e: 4e+4j
String(字符串)
字符串是由数字、字母、下划线组成的一串字符
s = 'my name is John'
b = 'OK!'
字符串列表取值有两种方法:
从左到右,默认开始索引为0
从右到左,默认开始索引为-1
如:s[0:1] 的结果为 my ,s[-4:-1] 的结果为 Joh ,s[-4:] 的结果为 John
字符串拼接直接用 ‘+’ 就行,如: a = s + ' ' + b 结果为:‘my name is John OK!’
List(列表)
列表用方括号标识 [] ,中间用','隔开
赋值方法:L = ['my', 'name', 'is', 'John']
取值:L[1]结果为 name,L[1:3] 结果为 ['is', 'John']
常用方法:
L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list6) #追加list6,即合并list到L上,这里注意,使用extend函数可以一次在一个列表中插入任意多个值,而不必须每次只使用append()一次一值的插入
L.sort() #排序
L.reverse() #倒序
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
#复制list:
L1 = L #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。
L1 = L[:] #L1为L的克隆,即另一个拷贝。
Tuple(元组)
元组用圆括号标识:() 用逗号','隔开
赋值方法:T = ('my', 'name', 'is', 'John')
当元组中只有一个元素时应这么写:T = (123,),这是为了与数学符号中的括号区分
取值:T[1]结果为 name,T[1:3] 结果为 ['is', 'John']
元组是只读的,定义后里面的内容不能修改,但可以用del语句将整个元组删除:
Dictionary(字典)
字典用大括号标识:{key1:value1,key2:value2,…}
字典是用键来存取的,是无序的
赋值方法:
d = {'name':'John','age':11,'sex':'man'}
dict = {}
dict['name'] = 'John'
常用方法:
dict.keys() #dict_key形式返回所有的KEY,
dict.values() #dict_value返回所有的value
相互转换
dict to list
list_key = [key for key in dict.keys()] #将所有key以列表形式返回
list_value = [value for value in dict.values()] #将所有value以列表形式返回
list to dict
list = [['name','john'],['age',10]] #二维列表
d = dict(list) #直接转换,输出 d = {'name':'john','age':10}