返回 导航

Python

hangge.com

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(间隔一个位置)来截取:
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,遍历列表的几种方法

(1)while 循环:
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 循环:
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)

回到顶部