Python数据类型(列表和元组)

1.3 List(列表)

列表由一系列按特定顺序排列的元素组成。
Python中,用方括号[ ]来表示列表,并用逗号来分隔其中的元素。

1.3.1 访问列表元素

Python中,第一个列表元素的索引为0,而不是1。

>>> bicycles = ['trek', 'cannondale', 'redline', 'specialized']
>>> print(bicycles[0])
trek
>>> print(bicycles[3])
specialized
>>> print(bicycles[-1])
specialized

注意:通过将索引指定为-1,可让Python返回最后一个列表元素。索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推。

1.3.2 添加元素

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> motorcycles.append('ducati')
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki', 'ducati']

1.3.3 修改元素

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> motorcycles[0] = 'ducati'
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki']

1.3.4 在列表中插入元素

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> motorcycles.insert(1, 'ducati')
>>> print(motorcycles)
['honda', 'ducati', 'yamaha', 'suzuki']

1.3.5 删除元素

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> del motorcycles[1]
>>> print(motorcycles)
['honda', 'suzuki']

弹出列表元素

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> popped_motorcycle = motorcycles.pop()
>>> print(popped_motorcycle)
suzuki
>>> print(motorcycles)
['honda', 'yamaha']
>>> print(motorcycles.pop(0))
honda
>>> print(motorcycles)
['yamaha']

有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove()

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> motorcycles.remove('yamaha')
>>> print(motorcycles)
['honda', 'suzuki']

1.3.6 对列表排序

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort()
>>> print(cars)
['audi', 'bmw', 'subaru', 'toyota']
>>> print(len(cars))
4

1.3.7 遍历列表

>>> magicians = ['alice', 'david', 'carolina']
>>> for magician in magicians:
        print(magician)

	
alice
david
carolina
>>> 

1.3.8 创建数值列表

>>> for value in range(1,5):
        print(value)

	
1
2
3
4
>>> 
>>> numbers = list(range(1,6))
>>> print(numbers)
[1, 2, 3, 4, 5]
>>> even_numbers = list(range(2,11,2))
>>> print(even_numbers)
[2, 4, 6, 8, 10]

对数字列表执行简单的统计计算

>>> digits = [1,2,3,4,5,6,7,8,9,0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45

1.3.9 列表生成式(List Comprehensions)

>>> squares = [value**2 for value in range(1,11)]
>>> print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
>>> [k + '=' + v for k, v in d.items()]
['x=A', 'y=B', 'z=C']
>>> L = ['Hello', 'World', 'IBM', 'Apple']
>>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']

1.3.10 使用列表的一部分

你可以处理列表的部分元素,Python称之为切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。

>>> players = ['charles', 'martina', 'michael', 'florence', 'eli']
>>> print(players[0:3])
['charles', 'martina', 'michael']
>>> print(players[:4]) # 如果你没有指定第一个索引,Python将自动从列表开头开始
['charles', 'martina', 'michael', 'florence']
>>> print(players[2:]) # 要让切片终止于列表末尾,也可使用类似的语法
['michael', 'florence', 'eli']
>>> print(players[-3:]) # 负数索引返回离列表末尾相应距离的元素
['michael', 'florence', 'eli']

复制列表

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:] # 使用[:]来复制列表

my_foods.append('cannoli')
friend_foods.append('ice cream')

print("My favorite foods are:")
print(my_foods)

print("
My friend's favorite foods are:")
print(friend_foods)

# My favorite foods are:
# ['pizza', 'falafel', 'carrot cake', 'cannoli']
# 
# My friend's favorite foods are:
# ['pizza', 'falafel', 'carrot cake', 'ice cream']

1.4 Tuple(元组)

Python将不能修改的值称为不可变的,而不可变的列表称为元组
元组看起来犹如列表,但使用圆括号而不是方括号来标识。
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

>>> tup1 = (50)
>>> type(tup1)
<class 'int'>
>>> tup1 = (50,)
>>> type(tup1)
<class 'tuple'>

参考资料:

原文地址:https://www.cnblogs.com/gzhjj/p/10658224.html