打卡day02 python基础—列表

列表的特点:
列表中的每个元素都是可变的;意味着我们可以在列表中添加、删除和修改元素;
列表中可的元素是有序的,也就是说每一个元素都有一个位置;
列表可以容纳python中的任何对象
# 通过输入位置而查询该位置所对应的值
Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']
print(Weekday[0])

打印结果:

Monday

# 第三个特征是列表可以装入Python中所有的对象
all_in_list = [1,1.0,'a word',print(1),True,[1,2],(1,2),{'key':'value'}]
print(type(all_in_list))

打印结果:

<class 'list'>

# type()函数用于返回指定参数的类型
number = [1,3,2,6,7,'8a','A']
print(type(number))

list即列表的意思
a = range(5)
print(list(a))

for each in  (number):
    print(each)

打印结果:

<class 'list'>
[0, 1, 2, 3, 4]

1
3
2
6
7
8a
A

# 列表的增删改查
fruit = ['pinespple','pear']
fruit.insert(1,'grape')
print(fruit)

"""
在使用insert方法的时候,必须指定在列表中要插入新的元素位置,插入元素的实际位置是在指定位置之前的位置,
如果指定列表中不存在,实际上也就是超出指定列表长度,那么这个元素一定会被放在列表的最后位置
"""

# 另一种插入方法:
fruit[0:0] = ['Orange']
print(fruit)

# insert()方法有两个参数:第一个参数指定待插入的位置(索引 值),第二个参数是待插入的元素值
# list2=[1,3,5,2,9]
# list2.insert(0,0)
# list2.insert(3,7)

# insert()方法中代表位置的第一个参数还支持负数,表示与列表末尾 的相对距离
list2.insert(-1,8.5)
list2.insert(-2,5.5)
print('更新后的列表',list2)

打印结果:

['pinespple', 'grape', 'pear']
['Orange', 'pinespple', 'grape', 'pear']

[0, 1, 3, 7, 5, 2, 9]

更新后的列表 [1, 3, 5, 2, 5.5, 8.5, 9]

# 创建一个空列表
empty=[]
"""append()方法只支持一个参数"""
empty.append(1)
print('更新后的列表',empty)
print(type(empty))

打印结果:

更新后的列表 [1]
<class 'list'>

# append向列表末尾添加元素
list = ['a','b','c']
list.append('d')
print('更新后的列表',list)

打印结果:

更新后的列表 ['a', 'b', 'c', 'd']

# extend()方法向列表末尾添 加多个元素,extend()事实上是使用一个列表来扩充另一个列表,所以它的参数 是另一个列表。
list1 = [1,3,6,8]
list1.extend(['O',9])
print('更新后的列表',list1)

打印结果:

更新后的列表 [1, 3, 6, 8, 'O', 9]

# 1.删除列表中元素的方法是使用remove():
fruit = ['pineapple','pear','grape']
fruit.remove('grape')
print(fruit)

#2. remove()方法需要指定一个待删除的元素:
eggs = ['鸡蛋','鸭蛋',['铁蛋','咸蛋','加拿大鹅蛋']]
# eggs.remove('鸭蛋')
eggs.remove('卤蛋')
print(eggs)
"""使用remove()删除元素,并不需要知道这个元素在列表中的具体位置。但是如果指定的元素不存在于列表中,程序就会报错"""

# 3.pop()方法是将列表中的指定元素“弹”出来,也就是取出并删除该元 素的意思,它的参数是一个索引值:
# eggs = ['鸡蛋','鸭蛋',['铁蛋','咸蛋','加拿大鹅蛋']]
# eggs.pop(2)
# print(eggs)

# 4.如果不带参数,pop()方法默认是弹出列表中的最后一个元素:
eggs.pop()
print(eggs)

# 5.最后一个是del语句,注意,它是一个Python语句,而不是del列表 的方法,或者BIF,
# del  eggs
# print(eggs)
"""上面代码由于eggs整个变量被del语句删除了,所以再次引用时,Python由于找不到该变量,便会报错"""

打印结果:

['pineapple', 'pear']

Traceback (most recent call last):
  File "C:/Users/issuser/PycharmProjects/untitled/test001/列表_元组_.py", line 117, in <module>
    eggs.remove('卤蛋')
ValueError: list.remove(x): x not in list

['鸡蛋', '鸭蛋']

['鸡蛋']

Traceback (most recent call last):
  File "C:/Users/issuser/PycharmProjects/untitled/test001/列表_元组_.py", line 133, in <module>
    print(eggs)
NameError: name 'eggs' is not defined

# 从列表中获取元素
eggs=['鸡蛋','鸭蛋','鹅蛋','铁蛋']
print(eggs[3])

打印结果:

铁蛋

# 列表的索引与字符串的分片十分相似,同样是分正反两种索引方式,只要输入对应的位置就会返回给你这个位置上的值
periodic_table = ['H','He','Li','Be','B','C','N','O','F','Ne']
print(periodic_table[0])
print(periodic_table[-2])
print(periodic_table[0:3])
print(periodic_table[-10:-7])
print(periodic_table[-10:])
print(periodic_table[:9])

print(periodic_table['H'])
"""列表只接受位置进行索引,但如果数据量很大的话,肯定会记不住什么元素在什么位置"""

 打印结果:

H
F
['H', 'He', 'Li']
['H', 'He', 'Li']
['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne']
['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F']

Traceback (most recent call last):
  File "C:/Users/issuser/PycharmProjects/untitled/test001/列表_元组_.py", line 85, in <module>
    print(periodic_table['H'])
TypeError: list indices must be integers or slices, not str

# 如果想要访问列表中最后一个元素,怎么办?可以使用len()函数获 取该列表的长度(元素个数),再减1就是这个列表最后一个元素的索 引值
eggs=['鸡蛋','鸭蛋','鹅蛋','铁蛋']
print(len(eggs)-1)
"""即当索引值为负 数时,表示从列表的末尾反向索引"""
print(eggs[-1])
"""要将“鸭蛋”和“铁蛋”的位置进行调换"""
temp = eggs[1]
eggs[1]=eggs[3]
eggs[3]=temp
print(eggs)

打印结果:

3
铁蛋
['鸡蛋', '铁蛋', '鹅蛋', '鸭蛋']

# 开发一个具有“抽奖”功能的程序,只需要先将“奖 项/参与者”放到列表里面,然后配合random模块即可实现
import random
prizes = ['鸡蛋','鸭蛋','铁蛋','咸蛋']
print(random .choice(prizes))
"""random的choice()方法可以从一个非空的序列(如列表)中随机获 取一个元素"""

打印结果:

鸭蛋

# 列表中还可以包含另一个列表,如果要获取内部子列表的某个元 素,应该使用两次索引
eggs = ['鸡蛋','鸭蛋',['铁蛋','咸蛋','加拿大鹅蛋']]
print(eggs[2][2])

打印结果:

加拿大鹅蛋

# 列表切片(列表切片并不会修改列表自身的组成结构和数据,它其实是为列表 创建一个新的拷贝(副本)并返回)
List1 = ['钢铁侠','蜘蛛侠','蝙蝠侠','绿灯侠','神奇女侠','骑行侠']
List2 = [List1[2],List1[3],List1[4]]
print(List2)

 打印结果:

['蝙蝠侠', '绿灯侠', '神奇女侠']

#1. 要求取出列表中最后3个元素
List3 = ['钢铁侠','蜘蛛侠','蝙蝠侠','绿灯侠','神奇女侠','骑行侠']
List4 = []
for i in range(-3,0):
    List4.append(List3[i])
print(List4)

#2. 只不过是用一个冒号隔开两个索引值,左边是开始位置,右边是结束位置。这里要注意的一点是:结束位置上的元素是不包 含的(如上面例子中,“神奇女侠”的索引值是4,如果写成list1[2:4],便 不能将其包含进来)
List4 = List3[2:5]
List4 = List3[:2]
List5 = List3[2:]
print(List4,List5)

# 3.如果啥都没有,只有一个冒号,Python将返回整个列表的拷贝
List6 = List3[:]
print(List6)

#4. 如想获取列表最后的几个元素
List7 = list (range(100))
print(List7[-10:])

打印结果:

['绿灯侠', '神奇女侠', '骑行侠']

['钢铁侠', '蜘蛛侠'] ['蝙蝠侠', '绿灯侠', '神奇女侠', '骑行侠']

['钢铁侠', '蜘蛛侠', '蝙蝠侠', '绿灯侠', '神奇女侠', '骑行侠']

[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

# 1.列表切片操作实际上还可以接受第三个参数,其代表的是步长,默 认值为1。下面将步长修改为2,看看有什么神奇的效果?
list = [1,3,2,7,8,9,0,10,11]
print(list[0:7:2])
print(list[::2])
print(list[::-2])

# 2.将步长设置为-1,相当于将整个列表翻转过来
print(list[::-1])

# 3.del直接作用于原始列表了,因为不这样做的话,代码就失 去意义了
del list[::-2]
print(list)

打印结果:

[1, 2, 8, 0]
[1, 2, 8, 0, 11]
[11, 0, 8, 2, 1]

[11, 10, 0, 9, 8, 7, 2, 3, 1]

[3, 7, 9, 10]

# 1.当列表包 含多个元素的时候,默认是从第一个元素开始比较,只要有一个PK赢 了,就算整个列表赢了
list4 = [123,456]
list5 = [234,123]
print(list4>list5)

list2=['apple']
list3=['pineapple']
print(list2<list3)


# 加号(+)也叫连接操作符,它允许把多个列表对象合并在一起, 其实就相当于extend()方法实现的效果
list6 = list4 + list5
print(list6)

list6 = list4 * 3
print(list6)

# 连接操作符并不 能实现列表添加新元素的操作:
list6 = list4 + 234

打印结果:

False

True

[123, 456, 234, 123]

[123, 456, 123, 456, 123, 456]

Traceback (most recent call last):
  File "C:/Users/issuser/PycharmProjects/untitled/test001/列表_元组_.py", line 197, in <module>
    list6 = list4 + 234
TypeError: can only concatenate list (not "int") to list

# 1.我们是在谈for循环的时 候认识它的,成员关系操作符就是in和not in:
list = ['小猫','小狗','小鸡','小鸭','小甲鱼']
print('小狗' in list)
print('小甲鱼'not in list)

#2. 可见in和not in只能判断一个层次的成员关系,这跟break和continue语句只能跳出一个层次的循环是一个道理。
list1 = ['小猫','小狗',['小鸡','小鸭','小甲鱼']]
print('小鸡' in list1)
print('小鸡' not in  list1)

打印结果:

True
False

False
True

# 要去除列表中重复的数据,只要利用好in和not in,就可以巧妙地实现,代码先迭代遍历old_list的每一个元素,如果该元素不存在于 new_list中,便调用列表的append()方法添加进去。
old_list = ['西班牙','葡萄牙','葡萄牙','牙买加','匈牙利']
new_list = []
for each in old_list:
    if each not in new_list:
        new_list.append(each)
print(new_list)

打印结果:

['西班牙', '葡萄牙', '牙买加', '匈牙利']

# 列表方法
print(dir(list))
# count方法:作用是统计某个元素在列表中出现的次数
list1 = [1,1,2,4,4,5]
print(list1.count(1))
# index()方法的作用是返回某个元素在列表中第一次出现的索引值:
print(list1.index(1))

打印结果:

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
2
0

# 从列表中获取元素,定义多个变量
my_list = [1,2,3,4,5]
one,two,three,four,five = my_list
print(type(my_list))
print(my_list)

打印结果:

<class 'list'>
[1, 2, 3, 4, 5]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值