Loading

python-列表

  • 列表函数
len(list),list为要计算元素个数的列表
返回列表元素个数
list1 = ['Google', 'Runoob', 'Taobao']
print (len(list1))
# 3
list2=list(range(5)) # 创建一个 0-4 的列表
print (len(list2))
# 5
max(list),list为要返回最大值的列表
返回列表元素中的最大值
同样也有min(list)用于获取最小值
list1, list2 = ['Google', 'Runoob', 'Taobao'], [456, 700, 200]
print ("list1 最大元素值 : ", max(list1))
# list1 最大元素值 :  Taobao
print ("list2 最大元素值 : ", max(list2))
# list2 最大元素值 :  700
list( seq ),seq为要转换为列表的元组或字符串
返回列表
aTuple = (123, 'Google', 'Runoob', 'Taobao')
list1 = list(aTuple)
print ("列表元素 : ", list1)
# 列表元素 :  [123, 'Google', 'Runoob', 'Taobao']
str="Hello World"
list2=list(str)
print ("列表元素 : ", list2)
# 列表元素 :  ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
# 其可以拆开单个字符元素
  • 列表方法
list.append(obj),obj为添加到列表末尾的对象
该方法无返回值,但是会修改原来的列表
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)
# 更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']
list.count(obj),obj为列表中要统计的对象
返回元素在列表中出现的次数
aList = [123, 'Google', 'Runoob', 'Taobao', 123];
print ("123 元素个数 : ", aList.count(123))
# 123 元素个数 :  2
print ("Runoob 元素个数 : ", aList.count('Runoob'))
# Runoob 元素个数 :  1
list.extend(seq),seq为元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾
该方法没有返回值,但会在已存在的列表中添加新的列表内容
list1 = ['Google', 'Runoob', 'Taobao']
list2=list(range(5)) # 创建 0-4 的列表
list1.extend(list2)  # 扩展列表
print ("扩展后的列表:", list1)
# 扩展后的列表: ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4]
list.index(x[, start[, end]]),x为查找的对象,start为查询的起始位置,end为查询的结束位置
该方法返回查找对象的索引位置,如果没有找到对象则抛出异常
list1 = ['Google', 'Runoob', 'Taobao']
print ('Runoob 索引值为', list1.index('Runoob'))
# Runoob 索引值为 1
print ('Taobao 索引值为', list1.index('Taobao'))
# Taobao 索引值为 2
list.insert(index, obj),index为对象obj需要插入的索引位置,obj为要插入列表的对象
该方法没有返回值,但会在列表指定位置插入对象
此处的索引位置就是插入元素之后的索引位置
list1 = ['Google', 'Runoob', 'Taobao']
list1.insert(1, 'Baidu')
print ('列表插入元素后为 : ', list1)
# 列表插入元素后为 :  ['Google', 'Baidu', 'Runoob', 'Taobao']
list.pop([index=-1]),index为要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值
该方法返回从列表中移除的元素对象
list1 = ['Google', 'Runoob', 'Taobao']
list1.pop()
print ("列表现在为 : ", list1)
# 列表现在为 :  ['Google', 'Runoob']
list1.pop(1) #此处的返回值并没有被接收
print ("列表现在为 : ", list1)
# 列表现在为 :  ['Google']
list.remove(obj),obj为列表中要移除的对象
该方法没有返回值但是会移除列表中的某个值的第一个匹配项
list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.remove('Taobao')
print ("列表现在为 : ", list1)
# 列表现在为 :  ['Google', 'Runoob', 'Baidu']
list1.remove('Baidu')
print ("列表现在为 : ", list1)
# 列表现在为 :  ['Google', 'Runoob']
list.reverse()
该方法没有返回值,但是会对列表的元素进行反向排序
list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.reverse()
print ("列表反转后: ", list1)
# 列表反转后:  ['Baidu', 'Taobao', 'Runoob', 'Google']
list.sort( key=None, reverse=False),key是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序,reverse -- 排序规则,True为降序,False为升序(默认)
该方法没有返回值,但是会对列表的对象进行排序
aList = ['Google', 'Runoob', 'Taobao', 'Facebook']
aList.sort()
print ( "List : ", aList)
# List :  ['Facebook', 'Google', 'Runoob', 'Taobao']
# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# 指定第二个元素排序
random.sort(key=takeSecond)
# 输出类别
print ('排序列表:', random)
# 排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]
list.clear()
该方法没有返回值
list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.clear()
print ("列表清空后 : ", list1)
# 列表清空后 :  []
list.copy()
返回复制后的新列表
list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list2 = list1.copy()
print ("list2 列表: ", list2)
# list2 列表:  ['Google', 'Runoob', 'Taobao', 'Baidu']  
  • 列表推导式

在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句

返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表

for和if主要是用于从序列中筛选出参数,前面则可以使用表达式或者函数将之前筛选出的参数作为输入数据得到结果

vec = [2, 4, 6]
[3*x for x in vec]
# [6, 12, 18]
[[x, x**2] for x in vec]
# [[2, 4], [4, 16], [6, 36]]
[3*x for x in vec if x > 3]
# [12, 18]
[3*x for x in vec if x < 2]
# []
vec1 = [2, 4, 6]
vec2 = [4, 3, -9]
[x*y for x in vec1 for y in vec2]
# [8, 6, -18, 16, 12, -36, 24, 18, -54]
[x+y for x in vec1 for y in vec2]
# [6, 5, -7, 8, 7, -5, 10, 9, -3]
[vec1[i]*vec2[i] for i in range(len(vec1))]
# [8, 12, -54]
  •  索引

对于['111','222','333'],可以使用如下方式进行二维索引

num1 = int(str[0][2:])
num2 = int(str[1][2:])
  •  列表拆分

只有字符串直接支持split()方法来直接按照分隔符拆分字符串,使其返回由子串组成的列表

如果想要使列表按照个数拆分为一个个小列表,可以使用列表推导式

li = [i for i in range(15)]
# 长度为15的列表
n = 3 
#大列表中几个数据组成一个小列表,此处将其分割为5个长度为3的列表
print([li[i:i + n] for i in range(0, len(l), n)])

 最后得到的结果是包含很多个小列表的大列表

posted @ 2020-10-20 19:35  lixin2020  阅读(189)  评论(0)    收藏  举报