当前位置: 首页 > news >正文

python(1)-元组和集合

Python的列表与Java、C等其他语言的数组非常相似,是对象的有序集合。创建列表的方法是,在方括号中列出以逗号分隔的元素,如下所示:

# 将包含3个元素的列表赋给x
x = [1, 2, 3]

注意,列表不必提前声明,也不用提前就将大小固定下来(大小可变)。以上在一行代码中就完成了列表的创建和赋值,列表的大小会根据需要自动增减。

与很多其他语言的列表不同,Python的列表可以包含不同类型的元素,列表元素可以是任意的Python对象。下面就是包含各种元素的列表示例:

# 第一个元素是数字,第二个元素是字符串,第三个元素是另一个列表
x = [2, "two", [1, 2, 3]]

最基本的内置列表函数或许就是len函数了,它返回列表的元素数量:

x = [2, "two", [1, 2, 3]]
print(len(x))

len函数不会对内部嵌套的列表中的数据项进行计数。


x=[0]
print(len(x))

x=[]
print(len(x))

x=[[1, 3, [4, 5], 6], 7]
print(len(x))

使用类似C语言数组索引的语法,就可以从Python列表中提取元素。像C和许多其他语言一样,Python从0开始计数,索引为0将返回列表的第一个元素,索引为1则返回第二个元素,依此类推。下面给出一些示例:

x = ["first", "second", "third", "fourth"]
print(x[0])
print(x[2])

但是Python的索引用法比C语言更加灵活。如果索引为负数,表示从列表末尾开始计数的位置,其中-1是列表的最后位置(0已经被用了,只能从-1开始),-2是倒数第二位,依此类推。继续沿用以上列表x,可以执行以下操作:

print(x[-1])
print(x[-2])

Python支持一次提取或赋值一整个子列表,也就是切片(slice)操作。不是用list[index]提取紧跟着index的数据项,而是用list[index1:index2]提取index1(含)和上限至index2(不含)之间的所有数据项,并放入一个新列表中。**取前取后,这个是编程里面经常遇到的一种情况。**下面给出一些示例:

x = ["first", "second", "third", "fourth"]
print(x[1:-1])
print(x[0:3])
print(x[-2:-1])

如果第二个索引给出第一个索引之前的位置会返回空列表:

print(x[-1:2])

在对列表进行切片时,还可以省略index1或index2。省略index1表示“从列表头开始”​,而省略index2则表示“直到列表末尾为止”​:

print(x[:3])
print( x[2:])

如果两个索引都省略了,将会由原列表从头至尾创建一个新列表,即列表复制。如果需要修改列表,但又不想影响原列表,就需要创建列表的副本,这时就能用列表复制技术了:

y = x[:]
y[0] = '1 st'
print(y)
print(x)

本文全代码合集

# 将包含3个元素的列表赋给x
x = [1, 2, 3]
print(x)
# 第一个元素是数字,第二个元素是字符串,第三个元素是另一个列表
x = [2, "two", [1, 2, 3]]
print(x)
print(len(x))

x=[0]
print(len(x))

x=[]
print(len(x))

x=[[1, 3, [4, 5], 6], 7]
print(len(x))

x = ["first", "second", "third", "fourth"]
print(x[0])
print(x[2])

print(x[-1])
print(x[-2])

x = ["first", "second", "third", "fourth"]
print(x[1:-1])
print(x[0:3])
print(x[-2:-1])

print(x[-1:2])


print(x[:3])
print( x[2:])

y = x[:]
y[0] = '1 st'
print(y)
print(x)

相关文章:

  • linux-centos nginx 添加stream模块
  • Map和Set
  • FunPapers[2]:www‘24 「快手」连续特征单调性建模
  • 【RocketMQ 存储】消息重放服务-ReputMessageService
  • Java与DeepSeek的完美结合:开启高效智能编程新时代 [特殊字符]
  • JavaSE:数组
  • Pygame中自定义事件处理的方法2-2
  • Linux-文件IO
  • 蓝桥杯篇---8位 ADC/DAC转换芯片 PCF8591
  • AtCoder Beginner Contest 393 —— E - GCD of Subset 补题 + 题解 python
  • 2025-02-16 学习记录--C/C++-PTA 7-21 求特殊方程的正整数解
  • 【css】超过文本显示省略号
  • nodejs:express + js-mdict 网页查询英汉词典,能显示图片
  • 线程池有哪几种状态?
  • AI与SEO协同:智能关键词挖掘与精准部署策略
  • 以若依移动端版为基础,实现uniapp的flowable流程管理
  • 【Spring Boot】SpringBoot自动装配-Import
  • TestHubo简介与安装
  • 让编程变成一种享受-明基RD320U显示器
  • 【中间件】Pulsar集群安装
  • 气急败坏!20多名台湾艺人被台当局列为“重点核查对象”
  • 流失海外79年,两卷战国帛书回归祖国
  • 一周文化讲座|“我的生命不过是温柔的疯狂”
  • 牛市早报|持续推进城市更新行动意见印发,证监会强化上市公司募资监管
  • 商务部回应美方加严限制中国芯片:敦促美方立即纠正错误做法
  • 全国人大常委会今年将初次审议检察公益诉讼法