赞
踩
元组的应⽤场景:
思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?
答:列表?列表可以⼀次性存储多个数据,但是列表中的数据允许更改。
⼀个元组可以存储多个数据,元组内的数据是不能修改的。
元组特点:定义元组使⽤⼩括号,且逗号隔开各个数据,数据可以是不同的数据类型。
# 元组
tuple1 = (111, 222, 333, 'hello', [1, 2, 3], (22, 33))
print(tuple1)
print(type(tuple1)) # <class 'tuple'>
# 元组不支持修改
# tuple1[0] = 666 TypeError: 'tuple' object does not support item assignment
# 只有一个元素的元组
# tuple2 = [666]
tuple2 = (666,)
print(type(tuple2)) # <class 'tuple'>
# 元组内的直接数据如果修改则⽴即报错 但是如果元组⾥⾯有列表,
# 修改列表⾥⾯的数据则是⽀持的
# tuple1[4] = 999TypeError: 'tuple' object does not support item assignment
tuple1[4][0] = 666
print(tuple1)
t1 = ('aa', 'bb', 'cc', 'dd', 'bb')
# 按下标查找数据
print(t1[0]) # 下标/索引访问
# index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index⽅法相同。
print(t1.index('bb', 3)) # 4
# count():统计某个数据在当前元组出现的次数。
print(t1.count('bb')) # 4
# len():统计元组中数据的个数。
print(len(t1)) # 5
# 推导式: 简化 列表或者其他序列复杂操作的表达式 # 列表推导式: # 格式: [表达式 for 临时变量 in 迭代对象 [if 条件]] from random import randint import random random.seed(666) li = [] for _ in range(10): li.append(randint(10, 100)) print(li) print([100 for i in range(10)]) print([100 for _ in range(10)]) print([i for i in range(10)]) print([i**2 for i in range(10)]) print([str(i) for i in range(10)]) ls = [randint(10, 100) for _ in range(10)] print(ls) # 将 li ls中的及格成绩筛选出来 # 1 new_scores = [] for score in li: if score >= 60: new_scores.append(score) print(new_scores) print([score for score in ls if score >= 60]) # 元组推导式: # 格式: (表达式 for 临时变量 in 迭代对象 [if 条件]) t1 = tuple(ls) print(type(t1)) print((i for i in t1)) # 返回的是generator print(tuple((i for i in t1 if i>50))) print(list(tuple((i for i in t1 if i>50))))
name = "abcdef"
print(name[1])
print(name[0])
print(name[2])
切⽚是指对操作的对象截取其中⼀部分的操作。字符串、列表、元组都⽀持切⽚操作。
序列[开始位置下标:结束位置下标:步⻓]
import string from random import choice upper_letter = string.ascii_uppercase lower_letter = string.ascii_lowercase print(upper_letter) print(lower_letter) # len print(len(upper_letter)) print(len(lower_letter)) # 序列[开始位置下标:结束位置下标:步⻓] # ABCDEF print(upper_letter[0:6]) print(upper_letter[:6]) print(upper_letter[23:26]) print(upper_letter[23:]) # 每个值有两个索引, 第二个索引从最右侧开始, 从-1开始计 print(upper_letter[-1]) print(upper_letter[-3:]) print(upper_letter[::2]) print(upper_letter[::]) print(upper_letter[::-1]) # 综合操作 print([x for x in string.ascii_uppercase[:6]]) print([f"Student{x}" for x in string.ascii_uppercase[:6]]) # choice() 随机选取 print([choice(string.ascii_uppercase[:20]) for _ in range(10)]) print([f"Employ{choice(string.ascii_uppercase[:20])}" for _ in range(10)])
https://leetcode-cn.com/problems/palindrome-number/solution/
def isPalindrome(x):
"""
:type x: int
:rtype: bool
"""
if x < 0:
return False
return int(str(x)[::-1]) == x
# "123" -- >"321" -- >321
if __name__ == '__main__':
print(isPalindrome(121)) # True
print(isPalindrome(123)) # False
print(isPalindrome(-123))# False
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。