Python学习笔记2—列表

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

1、修改列表元素

bicycles = ['trek','cannondale','redline']
print(bicycles)
#修改元素值
bicycles[0] = 'handa'
print(bicycles)

增加:

2、遍历切片

如果要遍历列表的部分元素,可在for循环中使用切片。

names = ['Tom','Alice','Nancy']
for name in names[0:2]:
    print(name)

 

2、使用sorted()对列表进行临时排序

bicycles = ['trek','cannondale','redline']
print("Here is the original list:")
print(bicycles)

#排序
print("nHere is the sorted list:")
print(sorted(bicycles))

print("nHere is the original list again:")
print(bicycles)

若要按字母顺序相反排序,向函数sorted()传递参数reverse = True即可。

 

七、使用列表的一部分

元组看起来犹如列表,但使用的是 圆括号 而不是 方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。

五、遍历整个列表

names = ['Tom','Alice','Nancy']
for name in names:
    print(name)

注:

  • for循环中的临时变量可以选取任何变量,一般取为列表的单数形式。
  • 处理好for循环中的缩进问题。循环执行的要缩进,循环结束后执行的一次性操作不缩进。
  • 小心不要遗漏了冒号 :

 

2、使用range() 创建数字列表

numbers = list(range(start,step,end))
print(numbers)

注:步长step可以省略,默认为1。

 

二、修改、添加和删除元素

>>> squares = [value ** 3 for value in range(1, 11)]
>>> print(squares[0:3])
[1, 8, 27]

3、从列表中删除元素

  • 使用del语句删除元素
bicycles = ['trek','cannondale','redline']
print(bicycles)
#删除开头元素
del bicycles[0]
print(bicycles)

使用del可删除任何位置处的列表元素,条件是知道其索引。

  • 使用pop(index)删除元素
bicycles = ['trek','cannondale','redline']
print(bicycles)
#删除末尾元素,保存被删除的值
popped_bicycle = bicycles.pop()
print(bicycles)
print(popped_bicycle)

注:index省略时表示删除末尾

  • 弹出列表中任何位置处的元素
    如果要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果要在删除元素后还能继续使用它,就使用pop()。
  • 根据值删除元素 remove(value)
bicycles = ['trek','cannondale','redline']
print(bicycles)
#删除特定值
bicycles.remove('redline')
print(bicycles)

使用remove( )从列表中删除元素时,也可以接着使用它的值,用变量储存起来。但是,方法remove( )只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

列表是一个有序的数据集合。访问时只需指出列表的名称,然后将某个要访问元素的位置或索引告诉 Python 即可。

4、列表解析

列表解析就是讲for循环和创建新元素的代码合并成一行,并自动附加新元素。

squares = [ ]
for value in range(1,11):
    square =value**2
    squares.append(square)
print(squares)

#列表解析
squares = [value**2 for value in range(1,11)]
print(squares)

注意列表元素的索引时从 0 开始的而不是 1 开始(这点倒是和C语言数组类似)

一、列表是什么

  • 列表是一系列按特定顺序排列的元素组成的,可以将任何东西加入列表中,其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素,给列表制定一个表示复数的名称(如names)是个不错的主意。
  • 用方括号[ ] 表示列表,并用逗号来分隔其中的元素。
bicycles = ['trek','cannondale','redline']
print(bicycles)
  • 访问列表(根据索引)
bicycles = ['trek','cannondale','redline']
print(bicycles[0])

索引是从0开始的,-1返回最后一个列表元素,-2返回倒数第二个列表元素以此类推(通常可用在不知道列表长度的情况下访问最后的元素)。

 

2、添加元素

  • 在列表末尾添加元素 append(value)
bicycles = ['trek','cannondale','redline']
print(bicycles)
#末尾添加元素
bicycles.append('handa')
print(bicycles)

方法append()让动态地创建列表易如反掌,可以先创建一个空列表,再使用一系列的append()语句添加元素。

  • 在列表中插入元素 insert(index,value)
bicycles = ['trek','cannondale','redline']
print(bicycles)
#在开头添加元素
bicycles.insert( 0 ,'handa')
print(bicycles)

2.2.创建数值列表

1、使用sort()对列表进行永久性排序

bicycles = ['trek','cannondale','redline']
print(bicycles)
#排序
bicycles.sort()
print(bicycles)

上述是根据字母顺序排序,也可以按照字母顺序相反的顺序排序。

bicycles = ['trek','cannondale','redline']
print(bicycles)
#排序
bicycles.sort( reverse = True)
print(bicycles)

 

三、组织列表

 

3、倒着打印列表

bicycles = ['trek','cannondale','redline']
print(bicycles)
#倒序
bicycles.reverse()
print(bicycles)

方法reverse()永久性地修改列表元素的排序顺序,但可随时恢复到原来的排列顺序,对列表在调用一次reverse()即可。

>>> cars
['subaru', 'toyota', 'audi', 'bmw']
>>> len(cars)
4

八、元组

列表适合用于存储在程序运行期间可能变化的数据集,是可以修改的。元组是不可变的列表。看起来犹如列表,但使用圆括号而不是方括号来标识。使用方法和列表一样。
虽然不能修改元组的元素,但可以给存储元组的变量赋值(重新定义整个元组)。

dimensions = (200,100)
print("Original dimensions:")
for dimension in dimensions:
    print(dimension)

#修改元组变量
dimensions = (400,50)
print("nModified dimensions:")
for dimension in dimensions:
    print(dimension)

相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

>>> list.pop(0)
'Just insert'
>>> list
['hello']

1、切片

names = ['Tom','Alice','Nancy']
print(names[0:3])

注:

  • 切片和range()一样,在到达指定的第二个索引前面的元素就停止了。
  • 没有指定第一个索引,Python将自动从列表开头开始。
  • 没有指定第二个索引,Python将自动到列表末尾结束。
  • 要输出最后几个,可采用负数,eg:names[-2:]从倒数第二个一直截取到开头。
>>> numbers = (200, 50)
>>> print(numbers)
(200, 50)
>>> numbers = (200, 60)
>>> print(numbers)
(200, 60)

4、确定列表的长度 len(list)

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

注:python是区分大小写的,所以关键字 for 和 in 必须保证小写。

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

digits = [1,2,3,4,5,6,7,8]
print( min(digits) )
print( max(digits) )
print( sum(digits) )

3.使用pop() 来删除列表中任何位置的元素。

1、使用函数range()

for value in range( 1 , 4 ):
    print(value)

函数range ()从指定的第一个开始数,并在到达指定的第二个值后停止,因此输出不会包含第二个值。
注:使用range()时,如果输出不符合预期,请尝试将指定的值加1 或者减1。

2.3.列表切片

六、创建数值列表

 

四、使用列表时避免索引错误

IndexError:list index out of range
使用列表发生索引错误时,可尝试将列表或其长度打印出来。

只使用列表部分元素的方法。Python 称之为 切片

3、复制列表

names = ['Tom','Alice','Nancy']
another_names = names[:]
print(another_names)

 

 

注意:Python是一个利用缩进来判断代码行关系的,所以编写时一定要注意行与行之间的缩进关系。缩进让代码更易读,它要求你使用缩进让代码整洁而结构清晰。

2.1.遍历整个列表

 

1.使用 del 语句删除元素,使用 del 可以删除任何位置的列表元素,条件是知道其索引。

 

 

 

 

 

1.列表访问时注意列表索引是从 0 开始的,不要超过可访问的索引上限。

 

 

 

 

4.根据值来删除元素。如果你只知道要删除的元素的值,你可以使用方法 remove() 来实现你的删除元素功能。

 

 

>>> list.remove('hello')
>>> list
[]
>>>

同样如果要倒序加参数 reverse = True 即可。

 

删除:

 

 

 

>>> cars
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.reverse()
>>> print(cars)
['subaru', 'toyota', 'audi', 'bmw']

元组的元素虽然不能修改,但是我们可以通过修改元组变量来实现元组的修改。

二、操作列表

如上所示,要使用 range() 函数来创建列表,用 list() 即可。

 

 

1.3 列表的增删改

 

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

1.使用方法 sort() 对列表进行永久性排序

 

 

2.4.1.定义元组

2.2.1.使用 range() 函数

 

 

2.使用函数 sorted() 对列表进行临时排序

>>> list.insert(0,'Just insert')
>>> list
['Just insert', 300, 'hello', 'world']

使用 range() 可以轻松获取指定范围的整型(Integer)数字,但是范围并不包含第二参数值。如上所示,range(1, 5) 只会取 1~4 之间的数据,要想打印出 5 ,就必须是 range(1, 6)

例如:

 

 

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素,元祖可以满足这种需求。Python 将不能修改的值称为 不可变的,而不可变的列表 被称为 元组

 

在列表末尾添加元素 append()

修改:

 

>>> numbers = squares
>>> print(numbers)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> squares.append(0)
>>> print(numbers)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0]
>>> print(squares)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0]
>>> numbers = squares[:]
>>> numbers.append(101)
>>> print(numbers)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0, 101]
>>> print(squares)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 0]0
>>> magicians = ['alice', 'david', 'carolina']
>>> for magician in magicians:
         print(magician)

alice
david
carolina

切片的第一个参数默认是列表开始的索引,第二个参数默认是列表结尾的索引。第一个参数可以给负数(第一个参数给负值后,第二个参数只能为空) ,表示从末尾开始取负数绝对值个元素。第二参数也可以给负数(第一个参数小于必须列表最大索引值减去从列表倒数第二个参数绝对值处索引值),表示取从第一个参数索引开始到结尾处倒数第负数绝对值索引范围内的元素。

 

2.列表访问最后一个元素可以使用索引 -1 ,但是要注意列表一定不能是空的,否则报错。

如上所示,sort() 默认是按照字符顺序排序的。如果要倒序排列,可加参数 reverse = True

PS:这里变量的命名使用单数和复数形式是一个不错的习惯。

 

 

>>> pop_list = list.pop()
>>> list
['Just insert', 'hello']
>>> pop_list
'world'

在列表中插入元素

 

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

1
2
3
4

循环是计算机自动完成重复工作的常见方式之一。例如上述 for 循环示例,首先会将列表 magicians 中的第一个元素赋给变量 magician,然后执行打印操作,将magician的值打印出来。紧接着会继续将第二个元素一直到最后一个元素将 magicians 所有元素全部依次赋值给变量 magician 然后打印出来。

如果你想对列表中的元素进行某个相同或者不同的操作,你就可能会用到循环。这里先介绍for循环:

注:“**2”表示平方值,“**3”表示立方值。

 

 

 

2.2.2.如何使用 range() 函数创建列表:

一、列表简介

>>> list.append("world")
>>> list
[300, 'hello', 'world']
>>> numbers = list(range(1, 6))
>>> print(numbers)
[1, 2, 3, 4, 5]

如果你想保留原有的列表排列顺序,但是又想按照某种顺序呈现它们,你可以选择 sorted()。

 

 

要创建切片,可指定要使用的第一个元素和最后一个元素的索引(列表的索引是从0开始的)。与函数 range() 一样。Python 在到达你指定的第二个元素前面的元素后停止。如果你要输出列表前三个元素,你就必须指定索引 0~3,这将输出分别为 0 、1、2 的元素。

 

>>> print(squares[:])
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> print(squares[-3:])
[512, 729, 1000]
>>> print(squares[:-3])
[1, 8, 27, 64, 125, 216, 343]
>>> print(squares[-3:5])
[]
>>> print(squares[-3:3])
[]
>>> print(squares[-3:1])
[]
>>> print(squares[-3:0])
[]
>>> print(squares[-3:])
[512, 729, 1000]
>>> print(squares[-3:-3])
[]
>>> print(squares[1:-3])
[8, 27, 64, 125, 216, 343]
>>> print(squares[10:-3])
[]
>>> print(squares[len(squares) - abs(-3) - 1:-3])
[343]
>>> print(squares[len(squares) - abs(-3):-3])
[]

 

2.2.4.列表解析

1.4 组织列表/列表的排序

 

 

2.4.3.元组的修改

1.1 列表是什么?

 

 

>>> list[0] = 300
>>> list[0]
300

 

元组的遍历和列表一样也可以使用for。

2.4.2.元组的遍历

 

1.2 访问列表元素

 

 

列表由一系列特定 顺序排列  的 元素 组成。列表类似于C语言的数组,但是比数组高级,列表中的类型没有限制。可以包含各种类型。

 

 

例如:

 

 

>>> cars = ['bmw','audi','toyota','subaru']
>>> cars
['bmw', 'audi', 'toyota', 'subaru']
>>> sorted(cars)
['audi', 'bmw', 'subaru', 'toyota']

 

 

>>> numbers = (200, 50)
>>> for number in numbers:
         print(number)
200
50

2.使用 pop() 方法 删除元素,pop() 可删除列表末尾的元素,并让你能够接着使用它(就是可以将删除的列表元素交给另外一个变量)。

4.获取列表的长度 len()

 

 

 

>>> del list[1]
>>> list
['Just insert', 'hello', 'world']

1.5 列表访问的错误

利用切片复制列表,如果你想利用已有的列表元素重新新建一个列表就必须用到切片。普通的赋值是不行的,普通的赋值只是将当前列表的列表地址赋给了新增的列表,并未新增一个拥有独立内存地址的列表。

 

列表解析将 for 循环和创建元素的代码合并一行,并自动附加新元素。

>>> list = [1,'hello']
>>> list
[1, 'hello']

 

3.倒着打印列表(没有排序,只是调整前后输出,反转列表元素,此输出会永久修改列表顺序)

 

 

range() 函数在使用时还可以添加步长

 

 

 

 

2.4.元组

 

>>> cars = ['bmw','audi','toyota','subaru']
>>> cars
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort(reverse = True)
>>> cars
['toyota', 'subaru', 'bmw', 'audi']
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> max(digits)
9
>>> min(digits)
0
>>> sum(digits)
45
>>> tuple = (200, 50)
>>> print(tuple[1])
50
>>> tuple[1] = 60
Traceback (most recent call last):
  File "<pyshell#102>", line 1, in <module>
    tuple[1] = 60
TypeError: 'tuple' object does not support item assignment

 

>>> list[0]
1

2.2.3.对于数字类型的列表我们使用如下函数来找其中的最大值,最小值和总和:

 

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

 

本文由金沙棋牌游戏官方网站发布于技术,转载请注明出处:Python学习笔记2—列表

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。