Python - 基本数据类型详解2(列表、元组)
作者:hangge | 2022-05-04 09:52
五、列表(List)
1,列表定义
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。列表内的元素可以是任意数据类型。
list = [ 'hangge', 123 , True, 'abc', 13.2 ]
2,列表截取
(1)和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表:

list = [ 'hangge', 123 , True, 'abc', 13.2 ] print (list[0]) # 输出列表第一个元素 print (list[0:-1]) # 从第一个开始输出到倒数第二个元素 print (list[1:3]) # 从第二个开始输出到第三个元素 print (list[2:]) # 输出从第三个元素开始的所有元素

(2)列表截取还可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 7 的位置并设置为步长为 2(间隔一个位置)来截取:
(3)如果第三个参数为负数表示逆向读取,下面使用该特性实现一个翻转字符串方法:
list1 = [ 0, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] list2 = list1[1:7:2] #[1, 3, 5]
(3)如果第三个参数为负数表示逆向读取,下面使用该特性实现一个翻转字符串方法:
def reverseWords(input):
# 通过空格将字符串分隔符,把各个单词分隔为列表
inputWords = input.split(" ")
# 翻转字符串
# 假设列表 list = [1,2,3,4],
# list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
# inputWords[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
inputWords=inputWords[-1::-1]
# 重新组合字符串
output = ' '.join(inputWords)
return output
input = 'welcome to hangge.com'
rw = reverseWords(input)
print(rw)

3,使用索引修改列表元素
与字符串不一样的是,列表中的元素是可以改变的:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] a[0] = True a[2:5] = ['a', 'b', 'c'] a[7:9] = [] #等效于del a[7:9] print(a)
4,列表拼接
(1)使用加号 + 可以进行列表合并:
list1 = [ 'hangge', 123 ] list2 = [ True, 'abc', 13.2 ] list3 = list1 + list2 #['hangge', 123, True, 'abc', 13.2]
(2)使用乘号 * 可以进行重复复制:
list1 = [ 'hangge', 123 ] list2 = list1 * 2 #['hangge', 123, 'hangge', 123]
5,遍历列表的几种方法
list = [ 'hangge', 123 , True, 'abc', 13.2 ]
i = 0
while i < len(list):
print(list[i])
i += 1
(2)for 循环:
list = [ 'hangge', 123 , True, 'abc', 13.2 ]
for i in list:
print(i)
(3)for 循环结合 enumerate 函数:
list = [ 'hangge', 123 , True, 'abc', 13.2 ]
for index, value in enumerate(list):
print(index, value)
(4)for 循环结合 zip 函数:
key = [ 'a', 'b', 'c', 'd', 'e' ]
list = [ 'hangge', 123 , True, 'abc', 13.2 ]
for key, value in zip(key, list):
print(key, value)
6,判断是否包含某元素
使用 in 和 not in 可以判断某元素是否存在:
list = [ 'hangge', 123 , True, 'abc', 13.2 ]
if 'hangge' in list:
print('hangge in list')
if 1234 not in list:
print('1234 not in list')
7,内置方法
List 内置了有很多方法,下面为各方法的使用样例:list = [1, 2, 3, 4, 5]
print(list)
print("--- 在列表的末尾添加一个元素 ---")
list.append(6)
print(list)
print("--- 合并另一个列表元素 ---")
list.extend([-1, -2])
print(list)
print("--- 在指定位置插入元素 ---")
list.insert(2, 'a')
print(list)
print("--- 删除列表中的元素 ---")
list.remove('a')
print(list)
print("--- 删除列表中的最后一个元素 ---")
list.pop()
print(list)
print("--- 删除列表中的指定位置的元素 ---")
list.pop(2)
print(list)
print("--- 删除列表中的指定元素 ---")
list.remove(6)
print(list)
print("--- 列表的排序 ---")
list.sort() #默认升序,参数False表示要降序排列
print(list)
print("--- 列表的逆序 ---")
list.reverse()
print(list)
print("--- 列表的拷贝 ---")
list.copy()
print(list)
print("--- 列表元素的查找 ---")
print(list.index(-1)) #如果有多个,返回第一个,如果找一个不存在的元素会报错
print("--- 列表元素出现次数 ---")
print(list.count(2))
print("--- 列表的长度 ---")
print(len(list))
print("--- 清空列表 ---")
list.clear()
print(list)
六、元组(tuple)
1,元组定义
元组与列表类似,不同之处在于元组的元素不能修改,元组的元素写在 () 之中用逗号 , 隔开:
tuple1 = () # 空元组 tuple2 = (20,) # 一个元素,需要在元素后添加逗号 tuple3 = ( 'hangge', 123 , True, 'abc', 13.2 )
2,元组截取
(1)和列表一样,元组同样可以被索引和截取,元组被截取后返回一个包含所需元素的新元组:
tuple = ( 'hangge', 123 , True, 'abc', 13.2 ) print (tuple[0]) # 输出元组第一个元素 print (tuple[0:-1]) # 从第一个开始输出到倒数第二个元素 print (tuple[1:3]) # 从第二个开始输出到第三个元素 print (tuple[2:]) # 输出从第三个元素开始的所有元素
(2)元组截取还可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 7 的位置并设置为步长为 2(间隔一个位置)来截取:
tuple1 = ( 0, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) tuplp2 = tuple1[1:7:2] #(1, 3, 5)
(3)如果第三个参数为负数表示逆向读取:
tuple1 = ( 0, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) tuplp2 = tuple1[7:1:-1] #(7, 6, 5, 4, 3, 2)
3,元组拼接
(1)使用加号 + 可以进行元组合并:
tuple1 = ( 'hangge', 123 )
tuple2 = ( True, 'abc', 13.2 )
tuple3 = tuple1 + tuple2 #('hangge', 123, True, 'abc', 13.2)
(2)使用乘号 * 可以进行重复复制:
tuple1 = ( 'hangge', 123 )
tuple2 = tuple1 * 2 # ('hangge', 123, 'hangge', 123)
4,遍历元组的几种方法
(1)while 循环:
(3)for 循环结合 enumerate 函数:
(4)for 循环结合 zip 函数:
tuple = ( 'hangge', 123 , True, 'abc', 13.2 )
i = 0
while i < len(tuple):
print(tuple[i])
i += 1
(2)for 循环:
tuple = ( 'hangge', 123 , True, 'abc', 13.2 )
for i in tuple:
print(i)
(3)for 循环结合 enumerate 函数:
tuple = ( 'hangge', 123 , True, 'abc', 13.2 )
for index, value in enumerate(tuple):
print(index, value)
(4)for 循环结合 zip 函数:
key = ( 'a', 'b', 'c', 'd', 'e' )
tuple = ( 'hangge', 123 , True, 'abc', 13.2 )
for key, value in zip(key, tuple):
print(key, value)

4,判断是否包含某元素
使用 in 和 not in 可以判断某元素是否存在:
tuple = [ 'hangge', 123 , True, 'abc', 13.2 ]
if 'hangge' in tuple:
print('hangge in tuple')
if 1234 not in tuple:
print('1234 not in tuple')
5,内置方法
由于元组是不可变的,所以它只有 count() 和 index() 方法,这两个方法用法和列表是一样的:
tuple = (1, 2, 3, 4, 5)
print(tuple)
print("--- 元素的查找 ---")
print(tuple.index(3)) #如果有多个,返回第一个,如果找一个不存在的元素会报错
print("--- 元素出现次数 ---")
print(tuple.count(3))

全部评论(0)