元组深入学习及练习题---Python

元组(tuple)

有序且不可变的容器

v1 = (11,22,33)
v2 = ("李杰","lotus")
v3 = (True,123,"dxl",[11,22,33,44])
​
# 建议:议在元组的最后多加一个逗v3 = ("李杰","lotus",)

 

d1 = (1)  # 1
d2 = (1,) # (1,)
​
d3 = (1,2)
d4 = (1,2)

注意:建议在元组的最后多加一个逗号,用于标识他是一个元组。

# 面试题
1. 比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别?
2. 比较值 v1 = ( (1),(2),(3) ) 和 v2 = ( (1,) , (2,) , (3,),) 有什么区别?
              (1,2,3)

1.元组公共功能

  1. 相加

    两个列表相加获取生成一个新的列表。

    data = ("赵四","刘能") + ("宋晓峰","范德彪")
    print(data) # ("赵四","刘能","宋晓峰","范德彪")
    ​
    v1 = ("赵四","刘能")
    v2 = ("宋晓峰","范德彪")
    v3 = v1 + v2
    print(v3) # ("赵四","刘能","宋晓峰","范德彪")
  2. 相乘

    列表*整型 将列表中的元素再创建N份并生成一个新的列表。

    data = ("赵四","刘能") * 2
    print(data) # ("赵四","刘能","赵四","刘能")
    ​
    v1 = ("赵四","刘能")
    v2 = v1 * 2
    print(v1) # ("赵四","刘能")
    print(v2) # ("赵四","刘能","赵四","刘能")
  3. 获取长度

    user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
    print( len(user_list) )
  4. 索引

    user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
    print( user_list[0] )
    print( user_list[2] )
    print( user_list[3] )
  5. 切片

    user_list = ("范德彪","刘华强",'尼古拉斯赵四',)
    print( user_list[0:2] )
    print( user_list[1:] )
    print( user_list[:-1] )
  6. 步长

    user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
    print( user_list[1:4:2] )
    print( user_list[0::2] )
    print( user_list[1::2] )
    print( user_list[4:1:-1] )
    # 字符串 & 元组。
    user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
    data = user_list[::-1]
    ​
    # 列表
    user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"]
    data = user_list[::-1]
    ​
    user_list.reverse()
    print(user_list)
  7. for循环

    user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
    for item in user_list:
        print(item)
    user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
    for item in user_list:
     if item == '刘华强':
         continue
     print(name)

    目前:只有 str、list、tuple 可以被for循环。 "xxx" [11,22,33] (111,22,33)

    # len + range + for + 索引
    user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能")
    for index in range(len(user_list)):
        item = user_list[index]
        print(item)

8.转换

其他类型转换为元组,使用tuple(其他类型),目前只有字符串和列表可以转换为元组。

data = tuple(其他)
​
# str / list 
name = "Lotus"
data = tuple(name)
print(data) # 输出 ("武","沛","齐")
name = ["Lotus",18,"pythonav"]
data = tuple(name)
print(data) # 输出 ("Lotus",18,"pythonav")

9.嵌套

由于元组和列表都可以充当容器,他们内部可以放很多元素,并且也支持元素内的各种嵌套。

tu = ( '今天姐姐不在家', '姐夫和小姨子在客厅聊天', ('姐夫问小姨子税后多少钱','小姨子低声说道说和姐夫还提钱') )
tu1 = tu[0]
tu2 = tu[1]
tu3 = tu[2][0]
tu4 = tu[2][1]
tu5 = tu[2][1][3]
​
print(tu1) # 今天姐姐不在家
print(tu2) # 姐夫和小姨子在客厅聊天
print(tu3) # 姐夫问小姨子税后多少钱
print(tu4) # 小姨子低声说道说和姐夫还提钱

练习题

  1. 以下哪些数据类型转换为布尔值为False

    1 # True
    "" # False
    -19 # True
    [] # False
    [11,22] # True
    (1) # True
    (1,2,3) # True
    () # False
  2. 运算符操作

    v1 = [] or "lotus" # "lotus"
    v2 = [11,22] and (1,2,) # (1,2,)
  3. 比较:a = [1,2,3]b = [(1),(2),(3) ] 以及 c = [(1,),(2,),(3,) ] 的区别?

    a=b=[1,2,3]

    c是列表中有个元组

  4. 将字符串text = "lotus|dxl|eric"根据 | 分割为列表,然后列表转换为元组类型。

    text = "lotus|dxl|eric"
    text = text.split("|")
    text_list = list(text)
    print(tuple(text_list))

     

  5. 根据如下规则创建一副扑克牌(排除大小王)。

    # 花色列表
    color_list = ["红桃","黑桃","方片","梅花"]
    ​
    # 牌值
    num_list = []
    for num in range(1,14):
        num_list.append(num)
        
    result = []
    # 请根据以上的花色和牌值创建一副扑克牌(排除大小王)
    # 最终result的结果格式为: [ ("红桃",1), ("红桃",2) ... ]
color_list = ["红桃", "黑桃", "方片", "梅花"]
num_list = []
for num in range(1, 14):
    num_list.append(num)
​
result = []
for color in color_list:
    for num in num_list:
        result.append((color, num))
​
print(result)

 

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值