基本数据类型---列表

列表的定义和创建

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

列表的创建

>>> list_test=['张三', '李四', 'houxingbin']
>>> list_test
['张三', '李四', 'houxingbin']

#
>>> list_test=list('houxingbin')
>>> list_test
['h', 'o', 'u', 'x', 'i', 'n', 'g', 'b', 'i', 'n']

#
>>> list_test=list(['张三', '李四', 'houxingbin'])
>>> list_test
['张三', '李四', 'houxingbin']

列表的特点和常用操作

特性:

1.可存放多个值

2.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

image

3.可修改指定索引位置对应的值,可变

# 索引
>>> l = ['zhangsan', 'lisi', 'wangwu', 'houxingbin']
>>> l[0]
'zhangsan'
>>> l[1]
'lisi'
>>> l[-1]                  # 从后边开始取为负数
'houxingbin'
>>> l[-2]
'wangwu'
# 查找
>>> l = ['hou','bin', 1, 2, 4 , 4, 5, 5, 5, ]
>>> l.index('hou')       # 查找出来为索引的值
0
>>> l.index(4)            # 如果有重复的值,只去左边第一个,如要查找其它,如下:
4
>>> l[4:].index(4)
0
>>> l.count(4)            # 统计一共有多少个重复的值
2
>>> l.count(5)
3

# 切片
>>> l = ['zhangsan', 'lisi', 'wangwu', 'houxingbin']
>>> l[0:2]
['zhangsan', 'lisi']
>>> l[2:5]
['wangwu', 'houxingbin']
>>> l[2:]
['wangwu', 'houxingbin']
>>> l[:]
['zhangsan', 'lisi', 'wangwu', 'houxingbin']
>>> l[::2]
['zhangsan', 'wangwu']
>>> l[::-1]
['houxingbin', 'wangwu', 'lisi', 'zhangsan']
>>>

# 插入
>>> l = ['zhangsan', 'lisi', 'wangwu', 'houxingbin']
>>> l.insert(2, 'zhangsanfeng')        # 第一个为索引,第二个为插入的值
>>> l                        # 插入之后,该索引以及之后的索引都会向后排
['zhangsan', 'lisi', 'zhangsanfeng', 'wangwu', 'houxingbin']

# 追加
>>> l = ['zhangsan', 'lisi', 'wangwu', 'houxingbin']
>>> l.append("eva")
>>> l
['zhangsan', 'lisi', 'wangwu', 'houxingbin', 'eva']

# 删除
>>> l = ['zhangsan', 'lisi', 'wangwu', 'houxingbin', 'eva']
>>> l.remove("eva")
>>> l
['zhangsan', 'lisi', 'wangwu', 'houxingbin']
>>>
>>> l.pop()
'houxingbin'
>>> l
['zhangsan', 'lisi', 'wangwu']
>>> del l[1]                #全局删除
>>> l
['zhangsan', 'wangwu']

# 长度
>>> len(l)
3
>>>

# 包含
>>> 'zhangsan' in l
True
>>>
>>> 'libai' in l
False

# 循环
>>> for i in l:
...     print(i)
...
zhangsan
lisi
wangwu
# 排序
>>> n = [2, 3, 4, 1, 7, 5, 'c', 'e']
>>> n.sort()                    # 注意,整型和字符串类型不能进行排序
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'str' and 'int'
>>> n = [2, 3, 4, 1, 7, 5]
>>> n.sort()
>>> n
[1, 2, 3, 4, 5, 7]
>>> n2 = ['b', 'e', 'g', 'q', '$', '1']    # 字符串类型是按照ASCII进行排序
>>> n2.sort()
>>> n2
['$', '1', 'b', 'e', 'g', 'q']

# 列表的拼接
>>> n+n2
[2, 3, 4, 1, 7, 5, 'b', 'e', 'g', 'q', '$', '1']

# 列表的清空
>>> n.clear()
>>> n
[]

# 列表的复制
>>> n2
['b', 'e', 'g', 'q', '$', '1']
>>> n3 = n2.copy()
>>> n3                    # n2和n3都是相互独立的
['b', 'e', 'g', 'q', '$', '1']

列表与字符串——split和join

# 分割
>>> s = "hello world!!"
>>> s.split()                    # split函数默认以空格进行分割
['hello', 'world!!']
>>>
>>>
>>> s2 = "hello,world!!"
>>> s2.split(",")
['hello', 'world!!']

# 链接
>>> l = ['hi', 'eva']
>>> "".join(l)
'hieva'
>>> ",".join(l)
'hi,eva'

range

创建一个从1-100的列表,是直接从1写到100还是用循环?如果从1写到100未免太傻气了,用循环好像还好一点儿。但是用循环写还不够简单,在python里有一个现成的方法,可以直接生成一个1-100的数。

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> list(range(5,10))
[5, 6, 7, 8, 9]
posted @ 2018-06-09 15:10  以后、  阅读(142)  评论(0)    收藏  举报