列表(List)

1.定义

# 列表中的元素用中括号括起来,以逗号分割元素。
["hello", 2.0, 5, [10,20]]      # 列表元素可以为整数,字符串,浮点数,甚至另一个列表
a = 1
b = 2
num = [a, b, 3]     # 变量也可以做列表元素
print num
a = b =9
print num           # 修改变量的值,并不影响列表中元素的值
# 连续列表:range
range(1,5)          #输出结果为:[1, 2, 3, 4]
a = range(1,10,2)   #其中2 为步长
print a             #输出结果:[1, 3, 5, 7, 9]

2.索引

number = [13,35,23,22]
print number[1]   # 索引是从0开始(索引只能为整数不能为浮点数)
print number[1 + 2]     #索引也可以为整数表达式
number[1] = 3
print number[1]    # 列表是可以修改的

3.列表方法

number = [0, 1, 2, 3]
number.append(4)            #append在列表的尾部追加元素,参数是插入元素的值
print number
number.insert(3, 5)         #insert在列表中插入元素,它有两个参数,一个是索引位置,一个是插入元素的值
print number
nation1 = ["French", "German"]
nation2 = ["Chinese", "Korean"]
nation1.extend(nation2)     #方法extend合并两个列表为一个(将nation2元素追加到nation1,nation2列表不变)
print nation1
cars = ["Ford", "Fiat", "Volvo"]
cars.index("Ford")          #index取得元素的索引值
color = ["red", "green", "yellow", "green", "black"]
color.remove("green")       #remove从列表中删除第一次出现的值
print color
letter = [’a’, ’b’, ’c’, ’d’]
letter.pop()                #pop删除最后一个值,然后返回这个值
print letter
list = [’a’, ’b’, ’c’, ’d’, ’e’, ’f’]
del list[1:5] >>> print list#删除指定片段元素

4.常见案例

# 打印从1到19内的所有偶数
for number in range(20):
    if number%2==0:
        print number
# 打印列表中字符串
for fruit in ["banana","apple","auince"]:
    print "I like to eat" + fruit + "s!"

 5.克隆和别名

#别名
a = [1,2,3,4,5]
b = a
b[2]= 5
print a,b       #我们将一个变量赋值给另一个变量,那末这两个变量指向同一个对象。所以当b改变时,a也会发生改变
#克隆
x = [1, 3, 5, 7]
y = x[:]
y[2] = 3
print x,y       #克隆的结果是产生两个值一样,但却有不同标识符的列表。所以x和y分别代表不同的列表。修改y的元素值,不影响x 列表。

6.列表和字符串转换

import string
song = "The rain in Spain..."
#split函数的另外一个参数是规定作为分隔符的字符串。分隔符不显示在列表中。
print string.split(song,'ai')
#函数jion的功能和split正好相反,它是将列表连接成字符串。默认的分隔符是空格。
list = ['The', 'rain', 'in', 'Spain...']
print string.join(list)
# jion也可以执行分隔符
print string.join(list, '_')

7.列表数据快速对比

# 引入Counter方法
from collections import Counter
a = ["1", "2", "3"]
b = ["2", "3", "4"]
c = ["4", "3"]
difference = Counter(a) - Counter(b)
difference1 = Counter(c) - Counter(b)
print(difference, not difference)  # 输出:Counter({'1': 1}) False
print(difference1, not difference1)     # 输出:Counter() True

8.案例

#假设有这样包含字符串的列表,要将其中的每个元素的末尾加一字符‘s’。
fruit = ['apple', 'orange', 'pear', 'banana']
i = 0
for var in fruit:
    fruit[i] = var + 's'
    i = i + 1
print fruit

9.排序:sort:正序排序、items:倒序排序

10.实例

  10.1批量删除

    例如:待处理列表为['香蕉','橘子','火龙果','梨','苹果','柚子','csdn']

    已知删除元素的索引为[1,2,6]

# 方法一
lis = ['香蕉','橘子','火龙果','','苹果','柚子','csdn']
index_list = [1,2,6]
index_list.reverse()  # 对索引进行反转,使其从后往前删除
for i in index_list:
        lis.pop(i)
print('删除后lis的值:%s' %lis)

# 方法二
lis = ['香蕉','橘子','火龙果','','苹果','柚子','csdn']
index_list = [1,2,6]
lis = [n for i, n in enumerate(lis) if i not in index_list]
print('删除后lis的值:%s' %lis)

# 注:enumerate()对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
lis = ['香蕉','橘子','火龙果','','苹果','柚子','csdn']
for i, n in enumerate(lis):
    print(i,n)

 

 

posted @ 2020-12-10 17:05  *球球*  阅读(339)  评论(0编辑  收藏  举报