Python基本数据类型(列表 元组)

列表(list)

列表创建
创建列表,用方括号[]将元素括起来,逗号(,)分割,列表里的元素不需要统一类型

list1 = [1,2.3,'goods']
l3 = [a for a in range(5)]
print(l3) # [0, 1, 2, 3, 4]

列表操作
访问列表里的数据,下标访问[index]
下标截取访问[start:end],前闭后开

print(list1[1])
print(list1[0:2])
'''
2.3
[1, 2.3]
'''

增加数据 append
删除数据 del remove

list1 = [1, 2.3, 'goods']
list1.append(34)
print(list1)  # [1, 2.3, 'goods', 34]
del list1[0]
print(list1)  # [2.3, 'goods', 34]
list1.remove('goods')
print(list1)  # [2.3, 34]

两个列表用加号(+)可以组合成一个新的列表
星号(*)可以重复列表
遍历用for
in 判断是否包含

l1 = [1,2,3,'a','b','c']
l2 = ['d','e','f']

print(l1+l2)
print(l2*2)

for i in l1:
    print(i,end='\t')

print('\n*********')

for j in range(len(l1)):
    print(l1[j],end='\t')

print('\n',2 in l1)
'''
输出:
[1, 2, 3, 'a', 'b', 'c', 'd', 'e', 'f']
['d', 'e', 'f', 'd', 'e', 'f']
1	2	3	a	b	c	
*********
1	2	3	a	b	c	
 True
'''

列表的截取操作[start: end: step]
从左到右 0 开始
从右到左 -1 开始
第三个参数step 表示步长,如果是负数,表示逆向
参数如果不写,表示顶头
start到end 前开后闭

l4 = [a for a in range(9)]
print('l4---',l4) #  [0, 1, 2, 3, 4, 5, 6, 7, 8]
print('l4[0:4]下标从0到4---',l4[0:4])
print('l4[::2]从头到尾步长2---',l4[::2])
print('l4[::-1]表示从尾到头---',l4[::-1]) # 可用来反转列表
print('l4[-1:-4:-1]表示从最后一个到倒数第三个---',l4[-1:-4:-1])
print('l4[::-2]表示从尾到头步长2---',l4[::-2])
'''
输出:
l4--- [0, 1, 2, 3, 4, 5, 6, 7, 8]
l4[0:4]下标从0到4--- [0, 1, 2, 3]
l4[::2]从头到尾步长2--- [0, 2, 4, 6, 8]
l4[::-1]表示从尾到头--- [8, 7, 6, 5, 4, 3, 2, 1, 0]
l4[-1:-4:-1]表示从最后一个到倒数第三个--- [8, 7, 6]
l4[::-2]表示从尾到头步长2--- [8, 6, 4, 2, 0]
'''

常用函数
max和min 函数 要求列表的各个元素之间是可比较大小的,不然会报错

# l4 : [0, 1, 2, 3, 4, 5, 6, 7, 8]
l5 = ['a', 'b', 'a', 'b', 9, 10]
print('len() 计算长度:', len(l4))
print('max() 计算最大值:', max(l4))
print('min() 计算最小值:', min(l4))
print('count() 计数:', l5.count('a'))
l4.append(l5)
print('extend() 追加:', l4)
# print('index() 返回第一次出现的下标,没有则报错ValueError',l4.index(2),l4.index('f'))
l4.insert(2, 'insert')
print('insert() 插入:', l4)
print('pop(index) 移除元素并返回,不指定index则默认-1,', l4.pop(), l4.pop(0))
l5.remove('a')
print('remove() 移除列表里指定的第一个匹配项:', l5)
l5.reverse()
print('reverse() 反转列表 :', l5)


def length(e):
    return len(str(e))

l5.sort(key=length)
'''
sort(key=None, reverse=False): key 可以指定排序函数,reverse为true时降序,false升序
        sort直接对原列表进行操作,方法返回None
sorted(iterable, *, key=None, reverse=False): 根据iterable的值返回一个新的排序列表,
      key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 
      默认值为 None (直接比较元素)。reverse 为一个布尔值。 
      如果设为 True,则每个列表元素将按反向顺序比较进行排序。  
'''
print('sort() 排序:', l5)
print('copy() 复制列表:',l5.copy())
l5.clear()
print('clear() 清空列表:',l5)
'''
输出结果:
len() 计算长度: 9
max() 计算最大值: 8
min() 计算最小值: 0
count() 计数: 2
extend() 追加: [0, 1, 2, 3, 4, 5, 6, 7, 8, ['a', 'b', 'a', 'b', 9, 10]]
insert() 插入: [0, 1, 'insert', 2, 3, 4, 5, 6, 7, 8, ['a', 'b', 'a', 'b', 9, 10]]
pop(index) 移除元素并返回,不指定index则默认-1, ['a', 'b', 'a', 'b', 9, 10] 0
remove() 移除列表里指定的第一个匹配项: ['b', 'a', 'b', 9, 10]
reverse() 反转列表 : [10, 9, 'b', 'a', 'b']
sort() 排序: [9, 'b', 'a', 'b', 10]
copy() 复制列表: [9, 'b', 'a', 'b', 10]
clear() 清空列表: []
'''

元组

创建元组
类似于列表,用()将元素括起来,逗号分隔
只包含一个元素时,需要在元素后加个逗号

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

# 创建空元组
t1 = ()
# 创建元组
t2 = (1,2,3,'a','b','c')
# 创建一个元素的元组
t3 = (1,)
t4 = (1)
print('t1 及类型:',t1,type(t1))
print('t2 及类型:',t2,type(t2))
print('t3 及类型:',t3,type(t3))
print('t4 及类型:',t4,type(t4))
'''
t1 及类型: () <class 'tuple'>
t2 及类型: (1, 2, 3, 'a', 'b', 'c') <class 'tuple'>
t3 及类型: (1,) <class 'tuple'>
t4 及类型: 1 <class 'int'>
'''

元组操作
元组的访问和列表类似,根据下标访问,也可以通过下标进行截取,
通过加号(+)进行组合,通过星号(*)重复,通过[start: end:step]可以进行截取反转等操作
元组是不可变的,元组的元素不能修改,但是如果元组的元素是可变类型的,那么可变元素的元素可以改变

l1 = [3, 4, 5, 6]
t5 = (1, 2, l1)
print(l1 == t5[2])  # True
# t5[2]=[1,2,3] 不能改变
t5[2][0] = 6
print(t5)  # (1, 2, [6, 4, 5, 6])
print(l1 == t5[2])  # True

元组中的元素不支持删除操作,但是可以用del 删除整个元组
元组常用方法有len(),max(),min()
tuple(seq) 将list,range等 转换成元组
index() , count(), 类似列表

猜你喜欢

转载自blog.csdn.net/zZsSzss/article/details/102861020