Python列表

列表的创建和删除

listname = [element1,element2,elment n....]

示例代码,下面定义的列表都是合法的:

list1 = [1, 2, 3, 4, 5]
list2 = ["人生苦短", "我用Python"]
list3 = [12, 34, "再来一次"]

创建空列表

listname = []

创建数值列表

list(data)

示例代码:

list1 = list(range(10, 20, 2))
print(list1)

执行结果:
	[10, 12, 14, 16, 18]

删除列表

del listname

访问列表元素

使用下标访问

示例代码:

list1 = ["Java", "Php", "Python", "ruby"]
print(list1[2])

执行结果:
	Python

遍历列表

for item in listname:
	# 输出item
list1 = [1, 2, 3, 4, "再来", "一次"]
for i in list1:
    print(i)

执行结果:
	1 
	2 
	3 
	4 
	再来 
	一次

输出列表的下标和对应值

使用enumerate()同时输出索引和元素内容

list1 = [1, 2, 3, 4, "再来", "一次"]
for index, item in enumerate(list1):
    print("索引:", index, "对应的值:", item)

执行结果:
	索引: 0 对应的值: 1
	索引: 1 对应的值: 2
	索引: 2 对应的值: 3
	索引: 3 对应的值: 4
	索引: 4 对应的值: 再来
	索引: 5 对应的值: 一次

添加、修改和删除列表元素

添加元素

使用append

示例代码:

list1 = [1, 2, 3, 4, "再来", "一次"]
print(len(list1))
list1.append("哇喔")
print(len(list1))
print(list1)

执行结果:
	6
	7
	[1, 2, 3, 4, '再来', '一次', '哇喔']

使用extend

示例代码:

list1 = [1, 2, 3, 4, "再来", "一次"]
list1.extend("12345")
print(list1)

执行结果:
	[1, 2, 3, 4, '再来', '一次', '1', '2', '3', '4', '5']

注意到两者的区别了吗append一个字符串不管多长都算一个元素,而extend一个字符算一个元素

修改列表元素

示例代码:

list1 = [1, 2, 3, 4, "再来", "一次"]
list1[1] = 3
print(list1)

执行结果:
	[1, 3, 3, 4, '再来', '一次']

删除列表元素

使用del
删除指定下标的值

示例代码:

list1 = [1, 2, 3, 4, "再来", "一次"]
del list1[-1]
print(list1)

执行结果:
	[1, 2, 3, 4, '再来']

使用remove()
删除指定值

示例代码:

list1 = [1, 2, 3, 4, "再来", "一次"]
list1.remove(4)
print(list1)

执行结果:
	[1, 2, 3, '再来', '一次']

统计列表元素出现的次数

使用.count()

示例代码:

list1 = [1, 2, 3, 4, 1, "再来", "一次"]
count = list1.count(1)
print(count)

执行结果:
	2

获取指定元素首次出现的下标

使用.index

示例代码:

list1 = [1, 2, 3, 4, 2, "再来", "一次"]
count = list1.index(2)
print(count)

执行结果:
	1

对列表进行排序

使用.sort()

listname.sort(key=None, reverse=False) # 会改动这个列表在排序后面使用被排序list将是排序后的新list
  • listname:需要排序的列表名
  • key:指定从每个元素提起一个用于比较的键(如:设置key = str.lower),标示在排序时不区分大小写。
  • reverse:可选参数,如果将其值指定为True,则标示降序,如果为False,则标示升序排列

示例代码:

list1 = [100, 12, 3, 4, 2.1, 9, 19] # 注意只能数字
list1.sort()
print("升序:", list1)
list1.sort(reverse=True)
print("降序:", list1)

执行结果:
	升序: [2.1, 3, 4, 9, 12, 19, 100]
	降序: [100, 19, 12, 9, 4, 3, 2.1]

使用sorted()

listname = sorted(iterable, key=None, reverse=False) # 临时排序对赋值的变量有效,在排序后面执行的代码访问被排序的list顺序不发生改变
  • listname:需要排序的列表名
  • key:指定从每个元素提起一个用于比较的键(如:设置key = str.lower),标示在排序时不区分大小写。
  • reverse:可选参数,如果将其值指定为True,则标示降序,如果为False,则标示升序排列

示例代码:

list1 = [100, 12, 3, 4, 2.1, 9, 19] # 注意只能数字
print("原始list:", list1)
new_list = sorted(list1)
print("排序后的list:", new_list)
print("后面再次访问被转换的list将不会发生改变,这就是sort()和sorted()区别:", list1)

执行结果:
	原始list: [100, 12, 3, 4, 2.1, 9, 19]
	排序后的list: [2.1, 3, 4, 9, 12, 19, 100]
	后面再次访问被转换的list将不会发生改变,这就是sort()和sorted()区别: [100, 12, 3, 4, 2.1, 9, 19]

列表推导式

list = [Expression for var in range]
  • list: 标示生成的列表名
  • Expression :新列表的元素
  • var:循环变量
  • 需要插入的数量

简单示例:

list1 = [1, 10, 51, 80, 100]
new_list = ["1" for i in range(10)]
print(new_list)
print("长度:", len(new_list))

执行结果:
	['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
	长度: 10

列表推导式书写形式:

listname = [表达式 for 变量 in 列表]    或者  lsitname = [表达式 for 变量 in 列表 if 条件]

示例代码1:

import random
list1 = [random.randint(10, 100) for i in range(20)] # 列表从10到100,随机取20个元素生成
print(list1)

执行结果:
	[75, 44, 68, 91, 36, 92, 74, 71, 96, 66, 68, 13, 33, 66, 42, 29, 28, 27, 57, 42]

示例代码2:

list1 = [1, 10, 51, 80, 100]
new_list = [x for x in list1 if x > 50] # 循环list1如果循环出的值大于50 那么就把这个值插到新列表
print("大于50的有:",new_list)

执行结果:
	大于50的有: [51, 80, 100]
posted @ 2018-09-20 00:21  每一天,为明天。  阅读(86)  评论(0)    收藏  举报