Python基础教程(四) Python的六大数据类型之列表和元组-张柏沛IT博客

正文内容

Python基础教程(四) Python的六大数据类型之列表和元组

栏目:Python 发布时间:2019-10-29 20:03 浏览量:140

列表(打了激素的数组)

 

列表相当于索引数组

#定义一个列表
arr=[1,2,3,"a","b","c"];

#获取列表中的某个元素
arr[0]

#根据值返回元素下标
arr.index(1)

#干掉某元素
arr.remove(值)  #如果没有这个值,会报错

#或者
del arr[位]     #del用来干掉一个数组的

如果一个列表中有相同的值,比如[1,2,3,4,1]

那么arr.remove(1),他只会干掉第一个1,不会干掉最后一个1

同理arr.index(1),只会返回0,不会返回4

 

如果干掉某个元素的话,比如[1,2,3,4,5]

干掉list1[1]

那么list1[1]会变成3,也就是说,下标不会随删除元素而消失,但是值会由后面的值往前填

#添加一个元素(只能添加一个)
arr.append(元素)

#合并两个列表
arr.extend(arr2)
#或者
arr+arr2    #不推荐

#PS:+左右的类型一定要一致
#还可以arr=arr*3会将里面的内容复制多2份

#将元素插入到列表
arr.insert(位,元素)

#弹出最后一个元素
a=arr.pop()
b=arr.pop(位)  #弹出指定位的元素

#列表切片(即从列表中取一段)
newArr=arr[开始位:结束位]    #不包含结束位
newArr=[:结束位]
newArr=[开始位:]

#获取元素个数
len(arr)

#列表的比较
list1=[123,456]
list2=[234,789]
list1>list2

#得到False,他只比较第一个元素

#判断一个元素是否存在于一个列表
# if元素 in arr
# if元素 not in arr

#列表还有很多的方法,比如排序,判断元素在列表中出现次数等,可以用
dir(list)
#来查看有哪些方法

如果列表有数字和字符串,就不可以排序

 

 

# 列表的拷贝

newArr=arr[:]

newArr=arr

的区别

前者是使用两个内存空间,后者是一个内存空间

 

 

列表推导式:可以动态创建列表:

[有关A的表达式 for A in B]

# 比如我想创建一个列表,里面有5各元素,每个元素是1~5的平方
list1=[i**2 for i in range(1,6)]
tuple1=[(x,y) for x in range(11) for y in range(11) if x%2==0 if y%2!=0]
# 会得到
#[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9), (10, 1), (10, 3), (10, 5), (10, 7), (10, 9)]

上面的代码相当于:

list1 = []
for x in ragne(10):
    for y in range(10):
        if x%2 == 0:
            if y%2 != 0:
                list1.append((x, y))

 

 

 

元组(是不可以改变的列表)

元组无法插入,删除元素,也不能排序。总之就是不能改变

#元组的定义,使用括号和逗号定义
tuple1=(1,2,3,4,5,6,7,8)
#或者
tuple1=1,2,3,4,5,6,7,8

#但是如果()中只有一个元素,那么他就不是元组
tuple2=(1)
type(tuple2)
#是一个int

#定义元组的关键不是(),而是逗号,

tuple2=(1,)
type(tuple2)
#是一个tuple

#如果真的想添加一个元素到元组中可以:
tuple=tuple[:2]+(100,)+tuple[2:]
tuple=tuple[:]+(100,)

访问元素的方式和列表一样,其他的操作都和列表一样

#元组的一个用法,可以定义多个变量
a,b,c=1,2,3 

def abc():
    return 1,2,3   #返回一个元组
a,b,c=abc()

但是元组是没有元组推导式的

tuple1=(i**2 for i in range(10)) #得到的不是一个元组,而是一个生成器

 

不过有字典推导式和集合推导式:下面的内容有点超出本节的范围,大家可以先看看

字典推导式(有下标):{下标:值(这个值是个表达式) for i in xxx}

例如:

{i:i%2==0 for i in range(10)}
# 得到:
# {0: True, 1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False}

 

集合推导式:

{i的表达式 for i in xxx}

如:

{i for i in [1,2,3,4,5,6,5,4,3,2,1]}
#得到
#{1, 2, 3, 4, 5, 6}

 

 

如果您需要转载,可以点击下方按钮可以进行复制粘贴;本站博客文章为原创,请转载时注明以下信息

张柏沛IT技术博客 > Python基础教程(四) Python的六大数据类型之列表和元组

热门推荐
推荐新闻