【python 廖雪峰教程】list | tuple | dict | set | 条件判断if else | 循环for

Python内置数据类型

一、list列表

list是一种可变的有序集合,可以随时添加和删除其中的元素。
list中元素的数据类型可以不一样,也可以再嵌套list

empty_list = []	#空列表
classmates = ['Michael', 'Bob', 'Tracy']

len(classmates)	#3

classmates[0]	#'Michael'
classmates[-1]	#取最后一个元素,'Tracy'
classmates[-2]	#取倒数第二个元素

classmates.append('Adam')	#追加元素到末尾

classmates.insert(1, 'Jack')	#插入元素到指定位置,比如插到索引号为1的位置

classmates.pop()	#删除末尾的元素,并返回被删除的元素
classmates.pop(1)	#删除并返回指定位置的元素,1是索引号

classmates[1] = 'Sarah'	#把某个元素替换成别的元素,直接索引赋值

classmates.sort()	#对元素进行排序

当索引超出了范围时,Python会报一个IndexError错误

二、tuple

tuple是一种不可变的有序列表,tuple和list非常类似,但是tuple一旦初始化就不能修改。没有append(),insert()这样的方法,只能用索引获取元素。
因为tuple不可变,所以代码更安全。
当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。

t = ()	#定义一个空tuple
t = (1,)	#元组只有一个元素时必须这么定义。如果是 t = (1),小括号被当作运算符括号,t是个整数1

“可变的tuple”:

t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
t	#('a', 'b', ['X', 'Y'])

tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

三、dict

使用键-值(key-value)存储,具有极快的查找速度。key无重复值。

d = {}

d['Adam'] = 67	#除初始化外,通过key值放入

d['Adam'] = 90 	#多次对一个key放入value,后面的值会把前面的值冲掉

#如果key不存在,dict就会报错
#避免key不存在的错误
'Thomas' in d	#通过in判断key是否存在
d.get('Thomas')	#key不存在,返回None
d.get('Thomas', -1)	#key不存在,返回自己指定的value

d.pop('Bob')	#删除一个key

dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:

  • 查找和插入的速度极快,不会随着key的增加而变慢;
  • 需要占用大量的内存,内存浪费多。

所以,dict是用空间来换取时间的一种方法。

dict的key必须是不可变对象。 字符串、整数是不可变的,list是可变的

四、set

与dict类似,也是一组key的集合,但不存储value,也没有重复的key。set是无序的。

s = set([1, 2, 3])	#要创建一个set,需要提供一个list作为输入集合

s.add(4)	#添加元素,可以重复添加但不会有效果
s.remove(4)	#删除元素

#set可以看成数学意义上的无序和无重复元素的集合
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
s1 & s2	#交集
s1 | s2	#并集

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象

五、不可变对象

之前有提过,str,整数是不变对象,而list是可变对象。

a = 'abc'
b = a.replace('a', 'A')
b #'Abc'
a #'abc'

a是变量,而’abc’才是字符串对象,a指向的对象的内容才是’abc’。
当调用replace时,并没有改变字符串abc的内容,replace创建了一个新字符串Abc并返回,然后用变量b指向该新字符串。
所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

六、条件判断

只要if后是非零数值、非空字符串、非空list等,就判断为True,否则为False。

七、循环

for...in...

依次把list或tuple中的每个元素迭代出来,for x in ...就是把每个元素代入变量x,然后执行缩进块的语句。

range()

生成一个整数序列,生成的序列是从0开始小于括号内参数的整数。可以再通过list()函数可以转换为list。

sum = 0
for x in range(101):
    sum = sum + x
print(sum)

list(range(1,11))	#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],从1开始,小于11
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值