初学Python之四:使用list和tuple

本文详细介绍了Python中列表(list)和元组(tuple)的基本概念、主要用法及两者之间的区别,并通过实例演示了列表的各种操作,如增删改查等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

list是Python 的内置数据类型,list是一种有序的集合,可以随时添加和删除其中的元素。
这里主要分三部分介绍Python中的list和tuple:
1.Python中list的主要用法。
2.Python中tuple的主要用法
3.Python中的list、tuple和java中的list有什么不同。

1.Python中list的主要用法

  • 比如把一天分为上、中、下午三个时刻,可以用list来列举:

    day=['上午','中午','下午']
    print(day)
    输出:
    ['上午', '中午', '下午']
  • list的函数(长度,增删改查)
    1.list的长度表示使用 len(list)
    2.list中的每一个元素都有下标(index)其中下标为负数时代表倒数比如:

day=['上午','中午','下午']
print(day[-1])#代表倒数第一个
输出:下午

3.list寻找一个元素的index用index()比如:

print(day.index('中午'))
#输出:1

4.list可使用append增加元素到末尾,也可以使用insert添加到任意位置比如:

day=['上午','中午','下午']
day.append('晚上')
print(day)
#输出:['上午', '中午', '下午', '晚上']
day.insert(3,'傍晚')
print(day)
#输出:['上午', '中午', '下午','傍晚', '晚上']

5.list可使用pop()删除末尾元素(或pop(i)删除指定元素) ,也可使用clear()清空元素

day.pop()
print(day)
#输出:['上午', '中午', '下午', '傍晚']
day.clear()
print(day)
#输出:[]

6.替换比较简单只需day[i]=xxx比如:

day[4]='夜晚'
print(day)#输出:['上午', '中午', '下午', '傍晚', '夜晚']

7.list也支持嵌套一个或多个list 类似于二维或者多维数值:

#多维数值
aft=['一点','两点','三点']
day[1]=aft
print(day)
#输出:['上午', ['一点', '两点', '三点'], '下午']
print(day[1][0])
#输出:一点

2.Python中tuple的主要用法

tuple和list用法类似,但是tuple是指向不可变。
这里就不多说了可查看廖雪峰老师的博客:使用list和tuple

3.Python中的list,tuple和java中的list的比较

Java集合-Python数据结构比较

  • java中list :是有序的,可重复的,可变的

    • python list(列表)是有序的,可变的。
    • python tuple 有序的,不可变的(这里的不可变指的是指向不可变)
      java中的list分为ArrayList,LinkedList,Vector

    • ArrayList:底层使用数组,线程不安全,查找速度快,增删速度慢

    • LinkedList:底层使用链表,线程不安全,查找速度慢,增删速度快
    • Vector: 底层使用数组,线程安全,查找速度快,增删速度慢,被ArrayList替代
      这里写图片描述

4.练习

1.请用索引取出下面list的指定元素:

# -*- coding: utf-8 -*-

L = [
    ['Apple', 'Google', 'Microsoft'],
    ['Java', 'Python', 'Ruby', 'PHP'],
    ['Adam', 'Bart', 'Lisa']
]

我的答案:

xlen=len(L)
for i in range(xlen):
    ylen=len(L[i])
    for z in range(ylen):
        print(L[i][z])

2.练习二:删除列表中全部的2

C = [1,2,1,2,1,2,1,2,2,1,1,1,2]

我的答案

for i in range(len(C)-1,-1,-1):
    if C[i] == 1:
        C.pop(i)
        print(C)

#解析range第一个参数代表开始循环的数(13-1)
          #第二个参数代表结束循环的下标(-1不包括-1)
          #步长-1表倒序(这里解释为什么用倒序:
          #如果使用正序删除会对剩下的数值下标有所影响)
          #也就是循环12次

3.练习三:把列表中的1全部替换为2

C = [1,2,1,2,1,2,1,2,2,1,1,1,2]
for i in range(0,len(C)):
    if C[i] == 1:
        C[i]=2
        print(C)

4.练习四:使用冒泡算法从小到大排序下面的list

G = [5,8,5,12,9,7,2,0,9,10]
for i in range(len(G)-1,-1,-1):
    for z in range(i-1,-1,-1):
        if G[i]<=G[z]:
            x=G[z]
            G[z]=G[i]
            G[i]=x
print(G)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值