Python基础之list列表

列表的创建与删除

变量可以存储一个元素,而列表可以存储多个元素。

Python内置的一种数据类型是列表:list。

列表的特点

  • 列表元素按顺序有序排序;
  • 列表可以存储重复的数据;
  • 可以任意类型混存;
  • 根据需要动态分类和回收内存,长度可变;

列表的创建

列表(list)是一种有序容器,可以向其中添加或删除任意元素。在Python中,我们可以使用list方法创建一个空列表,也可以使用一对中括号来创建列表。因为中括号写起来更简便,所以通过中括号创建列表更为常见。

使用[]

使用中括号[],元素之间是用英文的逗号进行分割。

list1 = ['Google', 'Apple', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

使用list()函数

使用内置函数list()

list1=list(['hello','world',98])

列表的查询操作

获取列表中指定元素的索引

使用列表的index()函数来返回元素的索引。
如果列表中存在多个相同元素,只返回元素中第一个元素的索引。

list1=['hello','world',98,'hello']
print(list1.index('hello')) #如果列表中有相同元素只返回列表中相同元素的第一个元素的索引

如果查询的元素不在列表中,则会抛出ValueError错误。

list1=['hello','world',98,'hello']
print(list1.index('Python')) #ValueError: 'Python' is not in list

还可以设置在指定范围内进行查找。

list1=['hello','world',98,'hello']
print(list1.index('hello',1,3)) #ValueError: 'hello' is not in list   'world',98

获取列表中单个元素

与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
####################输出结果######################
red
green
blue

索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )
####################输出结果######################
black
white
yellow

当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
>>> classmates[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

获取列表中多个元素

同样你也可以使用方括号 [] 的形式截取字符,通过指定范围的起点和终点来指定索引范围。指定范围后,返回值将是包含指定项目的新列表。
格式为:[start : stop : step]

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
# 返回第三、第四、第五项:
print(thislist[2:5]) # ['cherry', 'orange', 'kiwi']

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4]) # [10, 20, 30, 40]

其中,step为步长,默认为1,可省略不写。

判断元素是否在列表中

in和not in

如果要确定列表中是否存在指定的项,请使用 in 或者 not in关键字:

thislist = ["apple", "banana", "cherry"]
if "apple" in thislist:
  print("Yes, 'apple' is in the fruits list")

print('p' in 'python') #True
print('k' not in 'python')#True

list1=[10,20,'python','hello']
print(10 in list1) #True
print(100 in list1) #False
print(10 not in list1) #False
print(100 not in list1) #True

列表的遍历

您可以使用 for 循环遍历列表项:

thislist = ["apple", "banana", "cherry"]
for x in thislist:
  print(x)

#############运行结果#######################
apple
banana
cherry

列表长度

如需确定列表中有多少项,请使用 len() 方法:

thislist = ["apple", "banana", "cherry"]
print(len(thislist)) # 3

列表元素的增删改

列表元素的增加

append()

append()方法为,在列表的末尾增加一个元素:

thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist) # ['apple', 'banana', 'cherry', 'orange']

extend()

extend() 方法为,将列表元素(或任何可迭代的元素)添加到当前列表的末尾:

list1=[10,20,30]
list2=['hello','world']
#向列表的末尾一次性添加多个元素
lst.extend(list2)
print(list1) # [10, 20, 30, 'hello', 'world']

insert()

insert()方法为,在列表的任意位置添加一个元素:

thislist = ["apple", "banana", "cherry"]
# 插入元素作为第二个位置
thislist.insert(1, "orange")
print(thislist) # ['apple', 'orange', 'banana', 'cherry']

列表元素的删除

remove()

remove()方法特点为,一次删除一个元素,重复元素只删除第一个,元素不存在则抛出ValueError错误。

list1=[10,20,30,40,50,60,30]
list1.remove(30) # 从列表中移除一个元素,如果有重复元素只移第一个元素
print(list1) # [10, 20, 40, 50, 60, 30]
list1.remove(100) # ValueError: list.remove(x): x not in list

pop()

pop()方法特点为,删除一个指定索引位置上的元素,指定索引不存在则抛出IndexError错误,不指定索引的话删除列表中最后一个元素。

# pop()根据索引移除元素
list1.pop(1)
print(list1) # [10, 40, 50, 60, 30]
list1.pop(5) # IndexError: pop index out of range  如果指定的索引位置不存在,将抛出异常
list1.pop()  #如果不指定参数(索引),将删除列表中的最后一个元素
print(list1) # [10, 40, 50, 60]

clear()

clear()方法为,清空列表中的所有元素:

'''清除列表中的所有元素'''
list1.clear()
print(list1) # []

del()

del()方法为,删除列表:

'''del语句将列表对象删除'''
del list1
print(list1) # NameError: name 'list1' is not defined

列表元素的修改

直接为指定索引的元素赋予一个新的值即可:

list1=[10,20,30,40]
#一次修改一个值
list1[2]=100
print(list1) # [10, 20, 100, 40]

列表元素的排序

sort()

调用sort()方法,列有中的所有元素默认按照从小到大的顺序进行排序,可以指定
reverse=True,进行降序排序;原列表发生改变。默认是 reverse=False为升序。

list1=[20,40,10,98,54]
# 输出结果:排序前的列表 [20, 40, 10, 98, 54] 2082888330624
print('排序前的列表',list1,id(list1)) 
# 开始排序 ,调用列表对象的sort方法,升序排序
list1.sort()
# 输出结果:排序后的列表 [10, 20, 40, 54, 98] 2082888330624
# id(list1)一样,说明为同一个数组,对原数组本身进行了排序修改
print('排序后的列表',list1,id(list1))

#通过指定关键字参数,将列表中的元素进行降序排序
list1.sort(reverse=True)  #reverse=True 表示降序排序, reverse=False就是升序排序
print(list1) # [98, 54, 40, 20, 10]
list1.sort(reverse=False)
print(list1) # [10, 20, 40, 54, 98]

sorted()

调用内置函数sorted(),可以指定reverse=True,进行降序排序,**原列表不发生改变。**默认是 reverse=False为升序。

list1=[20,40,10,98,54]
print('原列表',list1) # 原列表 [20, 40, 10, 98, 54]
#开始排序
new_list=sorted(list1)
print(list1) # [20, 40, 10, 98, 54]
print(new_list) # [10, 20, 40, 54, 98]
#指定关键字参数,实现列表元素的降序排序
desc_list=sorted(list1,reverse=True)
print(desc_list) # [98, 54, 40, 20, 10]

如有疑问,欢迎浏览讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个小坑货

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值