python学习之基础知识(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IamSarah/article/details/77887635
1列表数据类型:“列表”是一个值,它包含多个字构成的序列。列表中的值也称为表项,表项用逗号分开,用下标可以取得列表中的单个值。列表也可以包含其他列表值。这些列表的列表中的值,可以通过多重下标来访问,eg:spam[0][4].列表类型还可以使用负数下标,-1代表的是列表中的最后一个下标,-2表示的是倒数第二个下标。列表中也可以通过切片取得子列表,eg:spam[1:4].使用len()函数可以计算列表中值的个数。"+"操作符可以连接两个列表,得到一个新的列表。*操作符可以用于一个列表和整数,实现列表的复制。使用del语句可以从列表中删除下标处的值,表中被删除值后面的所有值,都向前移动一个下标eg:del spam[2]。使用in和not in操作符,可以确定一个值是否在列表中。eg:'cat' in spam#系统会返回False 或者True。
2.列表的一些应用:
多重赋值技巧
cat=['fat','black','loud']
size,color,disposition=cat
3.增强操作符:+=,-+,*=,/=,%=
4.用index()方法在列表中查找值:列表中利用index()方法,可以传入一个值,如果该值存于列表中,就返回它的下标。如果该值不在列表中,python就报valueError.如果列表中存在重复的值,就返回它第一次出现的下标。
5.用append()和insert()方法在列表中添加值:append(var),将需要添加的参数添加在列表末尾;insert()函数的用法,insert(n,var),n是新值的下标,var是要添加的新值。需要注意的是append()和insert()方法是列表方法,不能再其他值上面调用例如字符串和整型上面。
6.remove():该函数用于删除列表中的某一个值,使用方法是remove(var),将变量var从列表中删除。如果该值在列表中出现好多次,只有在第一次出现的值会被删除掉。
7.sort():使用sort()函数对列表进行排序,例如:
spam=[2,5,4,3,7]
spam.sort()
spam
如果需要对列表逆序排列,使用reverse,如下:
spam.sort(reverse=true)
需要注意的是,sort()函数不能既对有数字又有字符串值的列表进行排序。sort()对于字符串排序时,使用ASCII字符顺序,而不是实际的字典顺序,所以大写字母排在小写字母之前。如果需要按照普通的字典顺序来排序,就在sort()方法调用的时候,将关键字设置位str.lower,如下所示:
spam=['a','z','A','Z']
spam.sort(key=str.lower),这将导致sort()方法将列表中所有的表项当成小写,但实际并不会改变它们在列表中的值。
8.字符串:类似于列表表示序列值的数据类型。对于字符串来说和列表很相似,字符串可以看做是单个文本字符的列表。对列表的许多操作,也可以用于字符串:如按下标取值、切片、用于for循环、用于len(),以及用于in和not in操作符。列表和字符串有一个重要的不同点,列表是“可变的”数据类型,它的值可以添加、删除和改变。
9.元组数据类型:元组数据类型和列表数据类型有两方面的差异,元组的输入用圆括号(),而非[];另一个区别在于元组像字符串一样是不可变的,它的值不可以被修改、添加和删除。注意如果元组中只有一个元素,在括号中该值后面跟上一个逗号,表明这种情况,逗号告诉python这是一个元组。如果需要使用一个永远都不改变的值的序列,就使用元组。
10.list()和tuple()函数:使用list和tuple函数将返回传递给它们的值的列表和元组版本。示例如下:
tuple(['cat','dog','5'])
输出为:('cat','dog','5')
list(('cat','dog','5'))
输出为:['cat','dog','5']
所以如果需要元组值的一个可变版本,将元组转换成列表就很方便。
11.对于变量来说,它只保存字符串和整数值。看下面的例子:
spam=42
cheese=spam
spam=100
这段程序中spam的值改变为100并不会影响cheese的值,这是因为spam和cheese是不同的变量,保存了不同的值。但对于列表来说不是这样的,当你将列表赋值给一个变量的时候,实际上是将列表的“引用”赋值给该变量。“引用”是一个值,指向某些数据。列表引用是指向一个列表的值。示例如下:
spam=[0,1,2,3,4,5]
cheese=spam
cheese[0]='hello'
spam
此时程序的输出结果为['hello',1,2,3,4,5].
之所以出现这样的结果是因为在创建列表的时候,将对列表的引用赋值给了变量。程序的第二行只是将列表的引用拷贝给了cheese,而不是列表值本身。这意味着存储在cheese和spam中的值均指向了同一个列表。变量包含对列表值的引用而不是列表值本身。但对于数字和字符串来说,变量保存的是其值。变量在保存可变数据类型的值,例如列表和字典,python就使用其引用,对于不可变的数据类型的值,例如字符串、整型或者元组,python就保存值本身。
12.当函数被调用的时候,参数的值被赋值给边缘。对于列表、字典来说,意味着变元得到的是引用的拷贝。可以看下面的例子:
def eggs(para):
    para.append("hello")
spam=[1,2,3]
eggs(spam)
print(spam)
程序运行的结果是:[1,2,3,"hello"],这就是因为列表传递的是引用。
13.copy()和deepcopy()函数:在处理列表和字典时,传递引用是常用的方式,但如果函数修改了传入的列表和字典的时候,你可能希望函数中的变动不要影响到原来的列表和字典,那么就可以利用copy模块。copy模块包含copy()和deepcopy()函数。copy()可以用来复制列表和字典这样的可变值,而不是复制引用,如下所示:
import copy
spam=['a','b','c','d']
cheese=copy.copy(spam)
cheese[1]=42
spam
输出结果是['a','b','c','d']
cheese
输出结果是['a',42,'c','d']
使用copy()函数之后,spam和cheese分别指向独立的列表。如果要复制的列表中包含了列表,那就使用copy.deepcopy()函数。

猜你喜欢

转载自blog.csdn.net/IamSarah/article/details/77887635
今日推荐