51学通信论坛2017新版

标题: 1.10 列表的使用 [打印本页]

作者: 爱卫生    时间: 2017-12-12 20:51
标题: 1.10 列表的使用
本帖最后由 爱卫生 于 2017-12-12 22:35 编辑

1 列表的定义(列表的源代码文件是builtin.py,可以查看源代码是如何定义的,加深理解)
列表是一种python数据类型,用中括号[]表示。可以为空值。
代码:
  1. names=["zhangsan","lisi","wangwu","zhaoliu"]
  2. print(names)
  3. print(names[1],names[3]) # 从0开始编号。取1和3号的值
  4. print(names[1:3]) #这个动作叫切片。从编号1开始取,取3个,但不包括最后1个,即不取尾。所以取到2个值。
  5. print(names[-1]) #取最后一个值,用-1表示位置
  6. print(names[-2]) #取倒数第二个值。
  7. print(names[-3:-1])#取最后2个值。注意不包括最后一个。因为有不顾尾原则。
  8. print(names[-3:])#取最后3个值。
复制代码
结果:
  1. ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
  2. lisi zhaoliu
  3. ['lisi', 'wangwu']
  4. zhaoliu
  5. wangwu
  6. ['lisi', 'wangwu']
  7. ['lisi', 'wangwu', 'zhaoliu']
复制代码
2 列表的追加
names.append("alice") #插到末尾names.insert(2,"bob") #从位置2开始插入,插入bob
执行结果为:['zhangsan', 'lisi', 'bob', 'wangwu', 'zhaoliu', 'alice']

3 列表的替换
names[2] = "clark" # 直接把位置2的值替换为clark。

4 列表的删除(3种方法)
names.remove("alice") #删除列表中alice。需要注意,程序是从左往右搜索,找到一个alice后就删除,不会再执行。后面还有alice也不会删除了。
del names[1] #删除列表中位置为1的值。
names.pop() #删除列表中位置最后的那个值。
names.pop(2) #删除列表中位置2的那个值。

5 列表的索引查找
names.index("alice") #返回alice在列表中的位置

6 列表中重复数值的统计
names.count("alice") #统计列表中一共有几个alice

7 列表的重置
names.clear() #将列表重置为一个空列表[]

8 列表的顺序颠倒
names.reverse()  #将列表中元素反向,如[1,2,3]改为[3,2,1]

9 列表的排序
names.sort() #默认规则是按照首字母大小写排序
  1. names=["1zhangsan","2lisi","#wangwu","zhaoliu","alice"]
  2. names.sort()
  3. print(names)
复制代码
结果:
['#wangwu', '1zhangsan', '2lisi', 'alice', 'zhaoliu']
可以看出,特殊字符>数字>大写字母>小写字母。这个排序规则是ASCII码默认的排序规则。

10 列表的扩展(合并)
names.extend举例:
  1. names=["aaa","bbb","ccc","ddd","eee"]
  2. names1=["fff","ggg","hhh","iii"]
  3. names.extend(names1)
  4. print(names)
  5. del names1
  6. print(names)
复制代码
结果:
  1. ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'iii']
  2. ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg', 'hhh', 'iii']
复制代码
可以看到,合并以后,即使删掉names1,也对已经合并的结果没有任何影响。






欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3