python(一)——列表与元组

python(一)——列表与元组

    • 访问列表内元素
    • 使用列表中的元素
    • 修改列表元素
    • 添加列表元素
      • 1)在列表末尾添加
      • 2)在列表中插入元素
    • 删除列表元素
      • 1)使用del语句根据位置来删除元素
      • 2)使用pop()方法根据位置删除元素
      • 3)使用remove()方法根据值删除元素
    • 列表排序
      • 1)sort()方法
      • 2)sorted()方法
      • 3)reverse()方法
      • 4)len()方法确定列表长度
    • for循环遍历列表
    • range()函数生成数字列表
    • 列表解析
    • 切片
    • 元组

列表是由一系列按特定顺序排列的元素组成的。
如:

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']

访问列表内元素

print(bicycles)将会输出整个列表
print(bicycles[0])将会输出列表第一个元素
print(bicycles[-1])将会输出列表倒数第一个元素
print(bicycles[-2])将会输出列表倒数第二个元素

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

注:
title() 方法:单词的首字母大写
upper() 方法:单词全字母大写
lower() 方法:单词全字母小写
rstrip() 方法:输出时去除尾部空白
lstrip() 方法:输出时去除开头空白
strip() 方法:输出时去除两端空白

>>> print(bicycles[0])
 trek
>>> print(bicycles[-1])
specialized
>>> print(bicycles[-2])
redline
>>> print(bicycles[0])
 trek 
>>> print(bicycles[0].title())
 Trek 
>>> print(bicycles[0].upper())
 TREK 
>>> print(bicycles[0].lower())
 trek 
>>> print(bicycles[0].rstrip())
 trek
>>> print(bicycles[0].lstrip())
trek 
>>> print(bicycles[0].strip())
trek

使用列表中的元素

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> message="My first bicycle was a "+bicycles[1].title()+"."
>>> print(message)
My first bicycle was a Cannondale.

修改列表元素

修改列表内元素可直接给该元素赋值

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']
>>> bicycles[0]="change"
>>> print(bicycles)
['change', 'cannondale', 'redline', 'specialized']

添加列表元素

1)在列表末尾添加

append() 方法直接将元素添加到列表末尾

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']
>>> bicycles.append('testdata')
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized', 'testdata']

2)在列表中插入元素

insert() 方法可以在列表的任何位置添加新元素
如insert(0,‘testdata’),结果为把列表中第0位开始的每一位都右移一个位置,把元素‘testdata’插入到列表中的第0位上。

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']
>>> bicycles.insert(1,'testdata')
>>> print(bicycles)
[' trek ', 'testdata', 'cannondale', 'redline', 'specialized']

删除列表元素

1)使用del语句根据位置来删除元素

del语句进行元素删除时,将失去删除的元素,无法再对其进行访问。

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']
>>> del bicycles[1]
>>> print(bicycles)
[' trek ', 'redline', 'specialized']

2)使用pop()方法根据位置删除元素

pop() 方法对元素进行删除时,可将删除的元素返回,并可接着进行使用。
pop()括号中不填参数时,默认删除列表最后一个元素,填入参数时对所填位置的元素进行操作。

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']
>>> pop_data=bicycles.pop()
>>> print(bicycles)
[' trek ', 'cannondale', 'redline']
>>> print(pop_data)
specialized
>>>
>>> pop_data=bicycles.pop(1)
>>> print(bicycles)
[' trek ', 'redline']
>>> print(pop_data)
cannondale

3)使用remove()方法根据值删除元素

remove() 方法可针对值进行删除

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']
>>> bicycles.remove('redline')
>>> print(bicycles)
[' trek ', 'cannondale', 'specialized']

remove() 方法还可与变量一同使用,从而实现能够对删除的数据进行使用

>>> bicycles=[' trek ','cannondale','redline','specialized']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'specialized']
>>> remove_data='redline'
>>> bicycles.remove(remove_data)
>>> print(bicycles)
[' trek ', 'cannondale', 'specialized']
>>> print("A "+remove_data+" is too expensive for me.")
A redline is too expensive for me.

注:remove() 方法只能删除遇到的第一个指定值,若要进行多次删除,需要使用循环方法。

>>> bicycles=[' trek ','cannondale','redline','redline']
>>> print(bicycles)
[' trek ', 'cannondale', 'redline', 'redline']
>>> remove_data='redline'
>>> bicycles.remove(remove_data)
>>> print(bicycles)
[' trek ', 'cannondale', 'redline']

列表排序

1)sort()方法

sort() 方法对列表进行排序是永久性的,若在括号内加入reverse=True,则为逆序排序

>>> bicycles=['trek','cannondale','redline','specialized']
>>> bicycles.sort()
>>> print(bicycles)
['cannondale', 'redline', 'specialized', 'trek']
>>> bicycles.sort(reverse=True)
>>> print(bicycles)
['trek', 'specialized', 'redline', 'cannondale']

2)sorted()方法

sorted() 方法对列表进行排序是临时的,使用方法与sort() 方法相同

>>> bicycles=['trek','cannondale','redline','specialized']
>>> sorted(bicycles)
['cannondale', 'redline', 'specialized', 'trek']
>>> print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']
>>> sorted(bicycles,reverse=True)
['trek', 'specialized', 'redline', 'cannondale']

由代码可见,sorted()方法并没有改变列表原有的排序,而是把列表的元素排序了一遍而已。

3)reverse()方法

reverse() 方法用来倒叙输出列表,该方法并不对列表进行排序,仅仅是倒叙输出,同时该操作乃永久性的,若要变回原列表,只需再操作一次就行了。

>>> bicycles=['trek','cannondale','redline','specialized']
>>> bicycles.reverse()
>>> print(bicycles)
['specialized', 'redline', 'cannondale', 'trek']
>>> bicycles.reverse()
>>> print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']

4)len()方法确定列表长度

len() 方法可以获得列表的长度

>>> bicycles=['trek','cannondale','redline','specialized']
>>> len(bicycles)
4
>>> bicycles.append("1")
>>> len(bicycles)
5
>>> print(bicycles)
['trek', 'cannondale', 'redline', 'specialized', '1']

for循环遍历列表

用for方法可以进行循环遍历
句式如下:

for x in y:
	pirnt(x)

其中x为元素变量,y为遍历列表,“:”表示用于告诉python下一行是循环的第一行。
for语句之内的语句需要缩进,python是根据缩进来判断代码行与前一个代码行的关系的,有缩进的表示该语句是在for循环下的。

>>> excs =['alice','david','carolina']
>>> y=' '
>>> for x in excs:
...     print(x)
alice
david
carolina

>>> for x in excs:
...     print(x)
...     y=x
...
alice
david
carolina
>>> print(y)
carolina

range()函数生成数字列表

函数range()让Python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值。
句式如下:

for x in range(0,5):
0
1
2
3
4

用range()函数创建数字列表

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

同时还可以指定步长
以下语句中,输出1-10内的奇数,11为范围,1为起始数字,2为每次循环增加步长。

>>> numbers = list(range(1,11,2))
>>> print(numbers)
[1, 3, 5, 7, 9]

具体使用如下:
输出1-10的平方

>>> squares=[]
>>> for value in range(1,11):
...     square = value**2
...     squares.append(square)
>>> print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表解析

使用列表解析的步骤:
1.首先指定一个描述性的列表名。如squares
2.指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。如value**2
3.编写一个for循环,用于给表达式提供值,再加上右方括号。如for value in range(1,11)
例:

>>> squares = [value**2 for value in range(1,11)]
>>> print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

切片

使用切片,可指定要使用的第一个元素的索引和最后一个元素的索引加1,与range()函数相似。
若第一个索引未指定,则默认从列表开头开始。
若最后一个索引未指定,则切片要终止于列表末尾。
若均未指定,则切片表示整个列表。
若索引未负,可从末尾输出。

>>> plays = [1,2,3,4,5,6,7,8,9,10]
>>> print(plays[1:5])
[2, 3, 4, 5]
>>> print(plays[:5])
[1, 2, 3, 4, 5]
>>> print(plays[5:])
[6, 7, 8, 9, 10]
>>> print(plays[:])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> print(plays[-5:])
[6, 7, 8, 9, 10]
>>> print(plays[:-5])
[1, 2, 3, 4, 5]
>>> print(plays[-5:-3])
[6, 7]

使用切片,可进行很多操作
用for循环切片来遍历列表

>>> for play in plays[:5]:
...     print(play)
1
2
3
4
5

用切片来实现列表复制
注意:直接把列表赋值只能让变量名指向改列表,实际也只有一个列表,而通过列表复制得到的就是两个列表。

>>> new_plays = plays[:]
>>> print(new_plays)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sec_plays = plays
>>> plays.append('11')
>>> print(plays)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '11']
>>> print(sec_plays)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '11']
>>> print(new_plays)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

元组

元组与列表类似,但是唯一的区别为:元组不可修改,列表可修改。
元组定义使用圆括号(),定义后便可使用索引来访问其元素。
若要修改元组中的元素,只可重新赋值。

>>> dimensions = (1,2,3,4,5)
>>>> print(dimensions[0])
1
>>> print(dimensions[4])
5
>>> dimensions[0]=0
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'tuple' object does not support item assignment

>>> for dimension in dimensions:
...     print(dimension)
1
2
3
4
5

>>> dimensions = (0,2,3,4,5)
>>> print(dimensions)
(0, 2, 3, 4, 5)

你可能感兴趣的:(python(一)——列表与元组)