列表与元组——Python基础语法

Python有六种标准的数据类型:Number、Tuple、String、List、Dictionary、Set

  • 不可变数据(3个):Number、String、Tuple
  • 可变数据(3个):Set、List、Dictionary

Number(数字)

Python3支持int、float、bool、complex(复数)
复数的实部a和虚部b都是浮点型
数值的除法包含两个运算符:/返回一个浮点数,//返回一个整数
在混合计算时,Python会把整数转换为浮点数

List(列表)

基本概念

  • 列表是有序的元素集合,所有元素放在一对中括号[ ]中,用逗号隔开,没有长度限制
  • 列表索引值以0为开始值,-1为从末尾的开始位置
  • 列表可以使用+操作符进行拼接,使用*进行重复
  • 当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙

列表元素可以通过索引访问单个元素
列表
列表可以完成大多数集合类的数据结构实现
列表中元素可以为不同数据类型,他支持数字,字符串甚至可以包含列表(所谓嵌套)
列表为可变类型数据
列表基本操作

列表操作符操作符含义
< list >*< 整数类型 >对列表进行整数次重复
len(< seq >)列表中元素个数
< list >[< 整数类型 >]索引列表中的元素
for< var >in < list >:对列表进行循环列举
< list >[< 整数类型>:< 整数类型>]取列表的一个子序列
< expr>in< list >成员检查,判断< expr >是否在列表中
< list1 >+< list2 >连接两个列表

列表相关方法

方法方法含义
< list >.count(x)返回元素x在列表中的数量
in判断指定数据在某个列表序列,如果在返回True,否则返回false
not in判断指定数据不在某个列表序列,如果不在返回True,否则返回False

增加:

  • append():列表结尾追加数据(列表序列.append(数据))

  • extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表

  • insert():指定位置新增数据(列表序列.insert(位置下标,数据))

删除:

  • del(del 目标)

  • pop():删除指定下标的数据(默认为最后一个),并返回该数据(列表序列.pop(下标))

  • remove():移除列表中某个数据的第一个匹配项(列表序列.remove(数据))

  • clear():清空列表

修改:

  • 修改指定下标数据
  • 逆置:reverse()
  • 排序:sort()(列表序列.sort(key=None,reverse=False)).reverse表示排序规则,reverse=True降序,reverse=False升序(默认)

遍历:

  • while循环
  • for循环

列表嵌套
列表推导式

list_x=[1,2,3,4,5,6,7]
list_y=[i**2 for i in list_x]
# for i in list_x:
#     list_y.append(i**2)
print(list_y)

创建列表:

>>>list((3,5,7,9,11))   #将元组转换为列表
[3,5,7,9,11]
>>>list(range(1,10,2))  #将range对象转换为列表range(开始,结束,步长)
[1,3,5,7,9]                                       从1到10(不包括10)每次加2
>>>list('hello world')  #将字符串转换为列表,每个字符转换为列中的一个元素
['h', 'e' ,'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' ]
>>>list({3,7,5})  #将集合转换为列表,集合中的元素是无序的
[3,5,7]
>>>x=list()  #创建空列表
>>>x=[1,2,3]
>>>del x  #删除列表对象
>>>x  #对象删除后无法再访问,抛出异常

相关代码:

data=list(range(10))  #列表为从1到10(不包括10)的数字
print(data[-1])  #-1表示最后一个元素的下标
print(data[15])  #15不是有效下标,抛出异常
List=['YYQX','yyqx','XiZi']
print('YYQX'in List) #True
print('Yyqx'in List) #False
List=['Yyqx','yyqx','YyQx']
List.append([11,22])
print(List)
List.append('[11,22]')
print(List)
输出:
['Yyqx', 'yyqx', 'YyQx', [11, 22]]
['Yyqx', 'yyqx', 'YyQx', [11, 22], '[11,22]']
List=['Yyqx','YYQX','YYqx']
List.extend(['YyQx','YYQx'])
print(List)
#extend()追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾
输出:
['Yyqx', 'YYQX', 'YYqx', 'YyQx', 'YYQx']
List=['Yyqx','YYQX','YYqx']
List.extend('I Like YYQX')
print(List)
输出:
['Yyqx', 'YYQX', 'YYqx', 'I', ' ', 'L', 'i', 'k', 'e', ' ', 'Y', 'Y', 'Q', 'X'
list1=[1,2,3,4,5]
list1.reverse()
print(list1)
输出:
[5, 4, 3, 2, 1]
list1=['yyqx','YYQX','YyQx']
i=0
while i <len(list1):
    print(list1[i])
    i+=1
输出:    
yyqx
YYQX
YyQx
list1=['yyqx','YYQX','YyQx']
for i in list1:
    print(i)
输出:
yyqx
YYQX
YyQx

list=[['Y','Y','Q','X'],['y','y','q','x'],['Y','y','Q','x']]
print(list[2])
print(list[1][2])
输出:
['Y', 'y', 'Q', 'x']
q

Tuple(元组)

基本概念

  • 元组是包含多个元素的类型,元素之间用逗号分割(如:t1=(123,456,“hello”))
  • 可以通过把若干元素放在一对圆括号( )中创建元组,如果只有一个元素的话则需要多加一个逗号(如:(3,)),否则这个唯一的数据是什么类型,这整个元组就是什么类型
  • 也可以使用tuple()函数把列表、字典、集合、字符串以及range对象、map对象、zip对象或者其他类似对象转换为元组
  • 元组可以是空的,t2=()
  • 一个元组也可以作为另一个元组的元素,此时,作为元素 的元组需要增加括号,从而避免分歧(如:t3=(123,456,(“hello”,“world”)))
  • 元组各元素存在先后关系,可以通过索引访问元组中的元素
  • 元组内的数据是不能修改的
  • 与字符串类型类似,可以通过索引区来访问元组中的部分元素
  • 如果元组里边有列表,修改列表里面的数据是支持的,但是修改元组内的直接数据会立即报错
  • 与字符串一样,元组之间可以用+号和*号进行运算
    切片操作
    适用于列表、元组、字符串
    切片是用来获取列表、元组、字符串等有序序列中部分元素的一种语法。在形式上,切片使用2个冒号分隔的3个数字来完成
    [start:end:step]
    其中第一个数字start表示切片开始位置,默认为0;第二个数字表示切片截止(但不包含)位置(默认为列表长度);第三个数字表示切片的步长(默认为1),省略步长时还可以同时省略最后一个冒号
    当step为负整数时,表示反向切片,这使start应该在end的右侧

查找:

  • 按下标查找数据
  • index():查找某个数据,如果数据存在返回对应的下标,否则报错。语法和列表、字符串的index()方法相同
  • count():统计某个数据在当前元组出现的次数
  • len():统计元组中数据的个数

相关代码

data=list(range(20))
print(data[ : ]) #获取所有元素的副本
print(data[-3: ]) #最后3个元素
print(data[ : -5]) #除最后5个元素之外的所有元素
tuple1=(10)
print(type(tuple1))
tuple2=(10,)
print(type(tuple2))
输出:
<class 'int'>
<class 'tuple'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值