004-python之列表list

python数据类型—列表


python 中将所有元素用 [ ] 括起来并用 逗号隔开的叫做列表,列表是可以存储任意类型数据的容器

列表是可变的,有序的。可变指的是不仅元素可变,元素个数也是可变的

1. 访问列表中的元素

  1. 列表索引

    print(my_list[-1])  # 0
    
  2. 列表切片 使用切片运算符 : 访问列表中的一系列元素

    print(my_list[2:-1])  # [3, 4, 5, 6, 'hello']
    

2. 改变列表中的元素

  1. 索引

    my_list[0] = 7
    print(my_list)  # [7, 2, 3, 4, 5, 6, 'hello', 0]
    
  2. append()—在list末尾追加元素

    my_list.append('你好')
    print(my_list)  # [7, 2, 3, 4, 5, 6, 'hello', 0, '你好']
    
  3. insert(索引位置,待插入元素) —在指定位置插入指定元素

    my_list1.insert(1, 9)
    print(my_list1)  # [6, 9, 5]
    
  4. del 通过索引从list中删除元素或者完全删除列表

    del my_list1[2]
    print(my_list1)  # [6, 9]
    
  5. romove()方法 移除指定的元素,直接写入元素值

    my_list.remove(7)  # remove 没有返回值,不能直接打印
    print(my_list)  # [2, 3, 4, 5, 6, 'hello', 0, '你好']
    
  6. pop()方法删除给定索引处的项目并返回删除项,默认为最后一项

    print(my_list.pop())  # 你好  pop()有返回值
    print(my_list)  # [2, 3, 4, 5, 6, 'hello', 0]
    
  7. clear()方法是清空list中的所有元素 无参数

    my_list.clear()
    print(my_list)
    
  8. +运算符组合两个列表

    my_list1 = [6, 5]
    print(my_list1 + [4, 3])  # [6, 5, 4, 3]
    

3. 循环遍历列表

  1. 直接遍历

    for i in 列表名:
        print(i)
    
  2. 间接遍历 —len()能够查看容器长度

    for i in range(len(列表名)):
        print(列表名[i])
    
  3. enumerate() — 将列表转换为一个可迭代对象

    print(enumerate(列表名))
    for i in enumerate(列表名):
        print(i)
    

4. 列表的运算

  1. 组合两个列表 +运算符

    list1 = [6, 5]
    print(list1 + [4, 3])  # [6, 5, 4, 3]
    
  2. 列表的重复 *运算符

    list2 = [1, 2, 3, 4]
    print(list2 * 3)
    
  3. 成员运算 in、not in 结果是布尔值

    print(3 in [1, 2, 3, 5])  # True
    print([3] in [1, 2, 3, 5])  # False
    print([3] in [1, 2, 3, 5, [3]])  # True
    
  4. 比较大小

    a.比较同类型元素
    b.比较列表中第一对不相等的元素
    c.比较正常数字大小

    list1 = [1, 2, 3, 4]
    list2 = [1, 2, 4, 5]
    print(list1 < list2)  # True
    

5. 列表的方法和函数

  1. max() min() —获取同类型中最大值最小值

    num = [1, 2, 3, 4, 5, 1, 2, 1, 7, 5]
    print(max(num))
    print(min(num))
    
  2. 列表.count()—统计某个元素出现的个数

    num = [1, 2, 3, 4, 5, 1, 2, 1, 7, 5]
    print(num.count(1))  # 3
    
  3. sum(列表)—求和

    print(sum([1, 2, 3, 4]))  # 10
    
  4. 列表.reverse()—将列表倒序,返回值为None 修改原列表,返回值为空

    num4 = [1, 2, 5, 3, 4]
    num4.reverse()
    print(num4)  # [4, 3, 5, 2, 1]
    print(num4[::-1])  # [1, 2, 5, 3, 4]
    
  5. sorted() sort()

    sorted(列表,reverse=False(默认)):将列表从小到大排序,生成新列表;reverse=True时从大到小排序列表.sort(reverse=False(默认)):将列表从小到大排序,修改原列表;reverse=True时从大到小排序

    num5 = [23, 45, 12, 34]
    print(sorted(num5))  # [12, 23, 34, 45]
    print(sorted(num5, reverse=True))  # [45, 34, 23, 12]
    num5.sort()  # 修改原列表
    print(num5)  # [12, 23, 34, 45]
    
  6. 列表.extend()—将一个容器中的元素添加到列表中,会对元素进行拆分

    num = [23, 45, 12, 34]
    num.extend('name')
    print(num5)  # [12, 23, 34, 45, 'n', 'a', 'm', 'e']
    
  7. index(查找元素,指定开始位置)—从左向右查找元素,找到元素立刻停止并返回下标。如果元素不存在则报错

    num7 = [3, 2, 4, 5, 1,2, 34,'a']
    print(num7)
    index1 = num7.index('a')
    print(index1) # 7
    index2=num7.index(2,2)
    print(index2) # 5
    

6. 列表的推导式

  1. 语法一

    [表达式 for 变量 in 容器]---for循环每执行一次表达式就会将其生成的结果添加到列表中
    
    num = [i for i in range(1,101)]
    print(num)
    

    append()适用于所有向列表中追加元素的操作 列表推导式在某些情况下可以替代append()

    列表推导式的性能优于append()方法

    import time
    start=time.time()
    list1=[]
    for i in range(1,10000001):
        list1.append(i)
    end=time.time()
    print(f'append方法所用时间{end-start}')
    start1=time.time()
    list2=[ i for i in range(1,10000001)]
    end1=time.time()
    print(f'列表推导式方法所用时间{end1-start1}')
    
  2. 语法二

    [表达式 for 变量 in 容器 if 条件]--- for循环执行一次 if分支判断一次 条件成立时表达式执行
    
    oushu=[i for i in range(1,101) if i%2==0]
    print(oushu)
    
  3. 语法三

    [表达式 for 变量 in 容器 for 变量 in 容器]
    
    list3=[i for _ in range(3) for i in range(1,11)]
    print(list3)
    

练习

练习1:不使用index方法查找第二个a的下标

num_=[1,4,'a','b',3,'a','b']
index_=0
j=0
for i in num_:
    # print(i)
    if i=='a':
        j+=1
        if j==2:
            print(f'第2个a的下标是{index_}')
            break
    index_+=1

练习2:去掉列表中重复的元素

# 方法一: 存入一个新的列表
print('方法一:')
names = ['张三', '李四', '大黄', '张三', '张三']
name_list = []
for i in names:
    if i not in name_list:
        name_list.append(i)
print(name_list)
# 方法二:逆向取元素
names = ['张三', '李四', '大黄', '张三','张三']
for i in range((len(names)-1),-1,-1):
    if names.count(names[i])>1:
        del names[i]
print(names)
# for循环的时候,列表的元素是动态变化的
# 删除完index=1这个元素之后,紧接着index=2的元素会向左移动到原始index=1的位置。
# 此时,游标已经在index=1的位置。下一次再遍历的时候,游标会自增1,变为从index=2开始。
# 而此时index=2的元素是3,跳过了原始的index=2的元素2

#方法三:用while循环   正向删除
names = ['张三', '李四', '大黄', '张三','张三']
index=0
while index <=len(names)-1:
    if names.count(names[index])>1:
        del names[index]
    else:
        index+=1
print(names)

练习3:孪生数,两个素数之差为2

#先找出素数
shu=[]
for i in range(2,101):
    if i==2:
        shu.append(i)
    else:
        for j in range(2,i//2+1):
            if i%j==0:
                break
        else:
            shu.append(i)
print('-----')
print(shu)
#再找出孪生数
for i in range(len(shu)-1):
    if shu[i+1]-shu[i]==2:
        print(shu[i],shu[i+1],end=' ')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要对Python列表中的元素进行降序排序,可以使用sort()方法并传递reverse=True参数。例如: ``` my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] my_list.sort(reverse=True) print(my_list) ``` 输出结果为: ``` [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] ``` 这样就可以将列表中的元素按照从大到小的顺序进行排序。 ### 回答2: 在Python中,列表是一种非常重要的数据类型,也是我们在编写程序中经常使用的数据结构之一。列表中存储的可以是任意类型的数据,包括数字、字符串、布尔值等等。在列表中,我们可以根据需要添加、删除、修改和排序其中的元素。 降序排序是指按照从大到小的顺序对列表中的元素进行排序。Python内置的sort()函数可以实现列表按照升序排序,但是如果我们需要降序排序,就需要使用另一种方式,即reverse=True参数。下面是一个示例代码,演示了如何对一个列表进行降序排序: ```python numbers = [3, 8, 1, 6, 2] numbers.sort(reverse=True) print(numbers) ``` 在上面的代码中,我们定义了一个名为numbers的列表,其中包含五个数字。然后我们使用sort()函数对这个列表进行排序,同时传递了一个reverse=True参数,表示按照降序排序。最后我们使用print()函数输出了排序后的列表。执行这段代码后,你会得到如下所示的输出: ```python [8, 6, 3, 2, 1] ``` 可以看到,按照从大到小的顺序,列表中的数字已经被正确排序了。需要注意的是,sort()函数会修改原始列表,因此如果你需要保留原始列表的顺序,可以先将其复制到一个新的列表中,再对新列表进行排序。另外,如果你需要按照多个条件对列表进行排序,可以使用sort()函数的key参数,具体使用方式可以参考Python的官方文档。 综上所述,学习列表的应用之后,降序排序是非常重要的技能。掌握了降序排序的方法,我们就可以轻松对列表、元组、字典等数据结构进行排序,并根据需要进行添加、删除和修改操作,提高代码的可读性和运行效率。 ### 回答3: Python中的列表list)是一种非常常用的数据结构,可以容纳任何类型的数据,并且可以进行各种操作。在数据处理和算法中,对列表进行排序是一个非常常见的操作,Python提供了多种排序方法,其中之一就是降序排序。 在Python中,可以使用sort()函数对列表进行排序。sort()函数有两个可选参数key和reverse。其中key是一个函数,用于生成排序的依据,如果不指定,默认按照元素的大小进行排序。而reverse用于指定排序的是升序还是降序,默认为False,即升序排序。如果要进行降序排序,只需要将reverse设置为True即可。 以下是一个简单的例子,说明如何使用sort()函数进行降序排序: ``` nums = [1, 5, 3, 8, 2] nums.sort(reverse=True) print(nums) ``` 运行结果为: ``` [8, 5, 3, 2, 1] ``` 上述代码中,我们首先定义了一个包含5个整数的列表nums。然后使用sort()函数对其进行降序排序,并将reverse参数设置为True。最后输出排序后的列表。 除了sort()函数之外,Python还提供了其他的排序函数,例如sorted()函数可以对任何可迭代的对象进行排序,而不仅仅是列表。此外,还可以使用lambda表达式指定排序依据,例如按照列表中每个元素的第二个值进行排序: ``` items = [(1, 2), (3, 1), (5, 4), (0, 2)] items.sort(key=lambda x: x[1], reverse=True) print(items) ``` 运行结果为: ``` [(5, 4), (1, 2), (0, 2), (3, 1)] ``` 上述代码中,我们定义了一个包含4个元组的列表items,每个元组包含两个整数。然后使用sort()函数进行排序,指定排序依据为每个元组的第二个值,即使用lambda表达式生成排序依据。最后输出排序后的列表。 总之,Python中的列表及其排序方法,在数据处理和算法中非常常用。掌握列表的基本操作,以及sort()和sorted()函数的使用方法,可以帮助我们更加高效地处理数据和编写代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

兮知

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

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

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

打赏作者

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

抵扣说明:

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

余额充值