Python——列表:[]

一.创建、访问列表元素

1.创建

①中括号

#列表创建 ①[]
lst=['hello','world',98]

②调用内置函数list()

#② 使用内置函数list()
lst2=list(['hello','world',98])

③列表生成式
[列表元素关于i的表达式 for 自定义变量i in 可迭代对象range(1,10)]

#生成列表[2,4,6,8,10]
lst=[i*2 for i in range(1,6)]

2.列表的特点

①元素按顺序有序排列
②索引映射唯一一个数据
③可以存储重复数据
④任意数据类型混存
⑤根据需要动态分配和回收内存

3.获取元素的索引

①返回相同元素的第一个索引

lst=['hello','world',98,'world']
print(lst.index('world')) #1

②元素不在列表中,提示ValueError
③在指定范围查找

#在第二个元素到第三个元素查找(1,3)
lst=['hello','world',98,'hello']
print(lst.index('hello',1,3)) #ValueError: 'hello' is not in list

4.获取元素

① 正向从0到N-1;逆向从-N到-1

bicycles=['trek','cannondale','resline','specialized']
print(bicycles[2])#resline
print(bicycles[-1])#specialized

②指定索引不存在,提示IndexError

print(bicycles[6])#IndexError

③获取多个元素:切片操作 列表名[start:stop:step]
结果:列表片段的拷贝
范围:[start,stop)
step默认为1
step为正数:从start往后计算
step为负数:从start往前计算

lst2=[10,20,30,40,50,60,70,80]
print(lst2[1:6:1])#[1,6)  20,30,40,50,60
print(lst2[::-1])#[7,0]  [80, 70, 60, 50, 40, 30, 20, 10]
print(lst2[7::-1])#[7,0]  [80, 70, 60, 50, 40, 30, 20, 10]
print(lst2[6:0:-2])#[6,0)  [70, 50, 30]

④可调用字符串方法

 print(bicycles[2].title())

二.查询、修改、插入、删除元素

1.查询

①查某个元素

某个元素 in/not in 列表名

②遍历所有元素:

for 迭代变量 in 列表名:
	操作
#查询元素
lst3=[10,20,'python','hello']
print(10 in lst3)#True

for item in lst3:
    print(item,end='\t')

2. 修改

将结果存回原来的变量中
①一次修改一个值

bicycles=['trek','cannondale','resline','specialized']
bicycles[2]='resline1'
print(bicycles)#['trek', 'cannondale', 'resline1', 'specialized']

②一次改多个元素

bicycles=['trek','cannondale','resline','specialized']
bicycles[1:3]=[1,3,5,7,9]
print(bicycles)#['trek', 1, 3, 5, 7, 9, 'specialized']

3. 插入

①末尾插入一个元素:append(内容)
②在列表末尾至少添加一个元素:extend()

bicycles=['trek','cannondale','resline','specialized']
bicycles.append('resline2')
print(bicycles)#['trek', 'cannondale', 'resline', 'specialized', 'resline2']
lst4=['hello','world']
bicycles.extend(lst4)#bicycles.extend('hello','world')报错
print(bicycles)#['trek', 'cannondale', 'resline', 'specialized', 'resline2', 'hello', 'world']

③指定位置插入一个元素:insert(索引,内容)
④指定位置插入至少一个元素:切片

#任意位置插入一个元素
bicycles=['trek','cannondale','resline','specialized']
bicycles.insert(2,'resline3')
print(bicycles)#['trek', 'cannondale', 'resline3', 'resline', 'specialized']
#任意位置插入至少一个元素:切片
lst5=[True,False,'hello']
bicycles[1:]=lst5#从索引为1的元素开始切
print(bicycles)#['trek', True, False, 'hello']

4. 删除

①remove()一次删除一个元素;重复元素只删除第一个;元素不存在抛出ValueError
根据值删除元素,先将值存在一个变量中,也可接着使用它的值

bicycles=['trek','cannondale','resline','specialized']
print(bicycles)#['trek', 'cannondale', 'resline', 'specialized']
bicycles.remove('resline')
print(bicycles)#['trek', 'cannondale', 'specialized']

②pop()删除末尾元素,并且接着使用它。
pop(索引)删除指定位置元素,并且接着使用它;指定索引不存在抛出IndexError。

bicycles=['trek','cannondale','resline','specialized']
print(bicycles)#['trek', 'cannondale', 'resline', 'specialized']
popped_bicycle=bicycles.pop()
print(bicycles)#['trek', 'cannondale', 'resline']
print(popped_bicycle)#specialized

③切片:少删除一个元素

#至将产生一个新的列表对象
bicycles=['trek','cannondale','resline','specialized']
new_bicycles=bicycles[1:3]#[1,3)
print(bicycles,id(bicycles))#['trek', 'cannondale', 'resline', 'specialized']
print(new_bicycles,id(new_bicycles))#['cannondale', 'resline']
#不产生新的列表对象,删除原列表中的内容
bicycles[1:3]=[]
print(bicycles)#['trek', 'specialized']

④请空列表所有元素:clear()

bicycles=['trek','cannondale','resline','specialized']
bicycles.clear()
print(bicycle)#[]

⑤del:删除列表对象;删除指定位置,不再以任何方式使用它。前提是知道索引:del 变量名[索引]

bicycles=['trek','cannondale','resline','specialized']
del bicycles
print(bicycles)#抛出NameError

print(bicycle)#[]
bicycles=['trek','cannondale','resline','specialized']
del bicycles[1]

三.组织列表

1.永久排序sort()

①升序sort()

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

② 降序sort(reverse=True)

 cars=['bmw','audi','toyota','subaru']
 cars.sort(reverse=True)
 print(cars)#['toyota', 'subaru', 'bmw', 'audi']

2.暂时排序sorted()

保留列表元素原来的排列顺序,同时以特定的顺序呈现他们

①升序sorted(列表)

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

②降序sorted(列表,reverse=True)

cars=['bmw','audi','toyota','subaru']
print(cars)
new_cars=sorted(cars,reverse=True)
print(sorted(new_cars))

3.倒着打印列表reverse()

永久的修改排列顺序,但是随时可恢复

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

4.确定列表长度len()

cars=[‘bmw’,‘audi’,‘toyota’,‘subaru’]
len(cars)

四.操作列表

1.遍历列表:for

magicians=['alice','david','carolina']
for magician in magicians:
	print(magician.title()+",that was a great trick!")
	print("I can't wait to see your next trick,"+magician.title()+".\n")
print("Thank you,everyone.That was a great magic show!")

注意:
①别忘记冒号
②for以下代码用缩进表示for的内容

2.创建数值列表

①打印数字1~n:range(1,n+1)

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

打印1~n中的偶数:range(2,n+1,2)
②数字→列表:list()

numbes=list(range(1,6))
print(numbers)

③创建1~10的平方列表

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

④统计计算数字列表

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

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

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

3.处理列表的部分元素——切片

①切片
输出前三个元素[0:3]:0、1、2
从列表开头开始[:4]:0、1、2、3
到列表尾结束[2:]:1、2、3、4

players=['chareles','martina','michael','florence','eli']
print(players[0:3])

②遍历切片
遍历前三名队员

players=['chareles','martina','michael','florence','eli']
for player in players[:3]:
	print(player.title())

③复制列表

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("\nMy friend's favorite foods are:")
print(friend_foods)

注意:
不可以是friend_foods = my_foods,这样只是将my_foods赋给friend_foods(两个是一个东西),而不是将friend_foods的副本存储到friend_foods

4.元组:()——不可变的列表

①元组
Python将不能修改的值称为不可变的,而不可变的列表被称为元组

dimentions=(200,50)
print(dimentions[0])
print(dimentions[1])

②遍历元组

dimentions=(200,50)
for dimention in dimentions:
	print(dimention)

③修改元组变量

dimentions=(200,50)
for dimention in dimentions:
	print(dimention)
dimentions=(400,250)
for dimention in dimentions:
	print(dimention)

5.格式设置

①制表符缩进
②每行不超过80字符
③空行

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

说说其实

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

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

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

打赏作者

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

抵扣说明:

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

余额充值