欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

分分钟钟学会Python - 数据类型(list、tuple)

程序员文章站 2022-05-23 22:00:55
第四节 数据类型(列表、元祖) 今日内容 列表 元祖 1、列表 1.格式 2.公共方法 1.len 计算长度 2.索引 输出某一个元素 3.切片 输出某一段元素 4.修改(字符串/数字/布尔除外) 5.步长 选取列表中第几个元素 6.for循环 注意:for和while的应用场景: 有穷尽优先使用f ......

第四节 数据类型(列表、元祖)

今日内容

  • 列表

  • 元祖

1、列表

1.格式

users = ["ji",1,3,"gyhj"]

2.公共方法

  • 1.len #计算长度

    users = ["ji",1,3,"gyhj"]
    val = len(users)
    print(val)    # 3
  • 2.索引 #输出某一个元素

    users = ["ji",1,3,"gyhj"]
    val = users[1]
    print(val)    # 1                                             
  • 3.切片 #输出某一段元素

    users = ["ji",1,3,"gyhj"]
    val = users[0:2]
    print(val)    # "ji",1
  • 4.修改(字符串/数字/布尔除外)

    users = ["ji",1,3,"gyhj"]
    users[2] = 66
    print(users)  # ['ji', 1, 66, 'gyhj']
  • 5.步长 #选取列表中第几个元素

    users = ["ji",1,3,"gyhj"]
    val = users[0:3:2]
    print(val)    # ['ji', 3]
  • 6.for循环

    users = ["ji",1,3,"gyhj"]
    for i in users:   
    print(i)  # 每个元素一次打印
    """
    users = ["ji","asdgfh","tryu","gyhj"]
    for i in users:
     # 第一次循环:i=“ji”
      for e in i:
      print(e)    # 打印第一个元素中每个字符
    """
    # 练习题:请通过for循环和数字计数器实现:users = ['李邵奇','利奇航','张三丰','李子森']
     1 qwe
     2 asd
     3 zxc
     4 rty
    # 方式一
    users = ['qwe','asd','zxc','rty']
    count = 1
    for i in users:
      print(count,i)
      count += 1
    # 方式二
    users = ['qwe','asd' ,'zxc','rty']
    users_len = len(users) # 4
    for index in range(0,users_len): # [0,1,2,3]
      print(index,users[index])

    注意:for和while的应用场景:

    • 有穷尽优先使用for,
    • 无穷尽用while

3.独有方法

  • 1.append,在列表的最后追加一个元素

    # 示例
    users = ["sdxfc"]
    while true:
     name = input('请输入姓名:')
     users.append(name)
     print(users) # ['sdxfc', 'sdf']
  • 2.insert #在指定索引位置进行插入元素

    users = ['qwe','asd','zxc','rty']
    users.insert(1,'zxc')
    print(users)  # ['qwe', 'zxc', 'asd', 'zxc', 'rty']
  • 3.remove # 删除 注意:()里不加删除内容报错

    .pop # 删除 注意:()里不加数字,默认删除最后一个

    del # 删除 注意:()里不加数字报错

    .clear # 删除列表里所有元素 注意:()里不能加数字

    users = ["ji",1,3,"gyhj"]
    # 方式一
    users.remove('ji')
    print(users)  # [1, 3, 'gyhj']
    
    # 方式二
    users.pop(1)
    print(users)  #['ji', 3, 'gyhj']
    
    # 方式三
    del users[1]
    print(users)  #['ji', 3, 'gyhj']
    
    # 方式四
    users.clear()
    print(users)  # []

    注意:

    • 字符串本身不能修改或删除【不可变类型】
    • 列表是【可变类型】
  • 4.".reverse" #反转

    v1 = [1,2,3111,32,13]
    print(v1) # [1, 2, 3111, 32, 13]
    v1.reverse()
    print(v1) # [13, 32, 3111, 2, 1]
  • 5."sort" # 排序

    v1 = [1,2,3111,32,13]
    v1.sort(reverse=false) # 从小到大(默认)
    print(v1) # [11, 13, 22, 32, 3111]
    v1.sort(reverse=true) # 从大到小
    print(v1) # [3111, 32, 22, 13, 11]
    
    

4.总结

  • 1.增:

    • .append / .insert
  • 2.删:

    • .remove / .pop /. clear / del users[2]
  • 3.改:

    • users[3] = "新值"
  • 4.查:

    • 索引/切片
  • 5.列表嵌套

    users = ["a",0,true,[1,2,3,"kjhg"],[4,['sdf','dfg'],5,6]]
    users[0]  # a
    users[2]  # true
    users[3][2]   # 3
    users[3][-1] # "kjhg"
    users[3][-1][-1] # 'g'
    users[3] = 666    # ['a', 0, true, 666, [4, ['sdf', 'dfg'], 5, 6]]

2、元祖

1.格式

  • users = [11,22,33] # 列表(元素可变)
  • users = (11,22,33) # 元组(元素不可变)

2、公共方法

  • 1.索引(排除:int/bool)

    users = (11,22,33)
    print(users[0])   # 11
    print(users[-1])  # 33
  • 2.切片(排除:int/bool)

    users = (11,22,33)
    print(users[0:2])
  • 3.步长(排除:int/bool)

    users = (11,22,33,"qwerty")
    print(users[0:2:2])
  • 4.for循环(排除:int/bool)

    users = (11,22,33,"qwerty")
    for item in users:
      print(item)
  • 5.len(排除:int/bool)

    users = (11,22,33,"qwerty")
    print(len(users))

3、独有方法(无)

4、 特殊

  • 元组中的元素(儿子)不可被修改/删除

    # 示例一:
    v1 = (11,22,33)
    v1[1] = 999 # 错误
    v1 = 999  # 正确
    # 示例二:可以嵌套
    v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3))
    # 示例三:嵌套
    v2 = [11,22,33,(11,22,33)]
    v2[-1][1] = 99 # 错误
    v2[-1] = 123 # 正确
    # 示例四:嵌套
    v3 = (11,[1,2,3],22,33)
    v3[1] = 666 # 错误
    v3[1][2] = 123

3、总结

1.列表(可变)

  • 公共
    • 索引
    • 切片
    • 步长
    • 修改
    • 删除 del
    • for
    • len
  • 独有
    • append
    • insert
    • pop
    • remove
    • clear
  • 列表嵌套

2.元组(不可变)

  • 公共

    • 索引
    • 切片
    • 步长
    • for
    • len
  • 独有功能(无)

  • 元组嵌套

    # 错误示例
    v3 = (11,[1,2,3],22,33)
    v3[1] = 666 
    v3[1][2] = 123

4.练习题

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# 1.简述解释性语言和编译型语言的区别?
"""
解释性语言:一句一句代码进行解释
编译型语言:所有代码从头到尾进行编译
"""
# 2.列举你了解的python的数据类型?
"""
1.int
2.bool
3.str
4.列表
5.元组
"""
# 3.写代码,有如下列表,按照要求实现每一个功能。
"""
li = ["alex", "wusir", "ritian", "barry", "wenzhou"]
1.计算列表的长度并输出
a = len(li)
print(a)
2.请通过步长获取索引为偶数的所有值,并打印出获取后的列表
a = li[0::2]
print(a)
3.列表中追加元素"seven",并输出添加后的列表
li.append('seven')
print(li)
4.请在列表的第1个位置插入元素"tony",并输出添加后的列表
li.insert(0,"tony")
print(li)
5.请修改列表第2个位置的元素为"kelly",并输出修改后的列表
li[1] = "kelly"
print(li)
6.请将列表的第3个位置的值改成 "太白",并输出修改后的列表
li[2] = "太白"
print(li)
7.请将列表 a=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表
a=[1,"a",3,4,"heart"]
li.append(a)
print(li)
8.请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
print(['alex', 'wusir', 'ritian', 'barry', 'wenzhou', 'q','w','e','r','t'])
9.请删除列表中的元素"ritian",并输出添加后的列表
li.pop(2)
print(li)
10.请删除列表中的第2个元素,并输出删除元素后的列表
li.pop(1)
print(li)
11.请删除列表中的第2至第4个元素,并输出删除元素后的列表
li.pop(1)
li.pop(1)
li.pop(1)
print(li)
# 4.请用三种方法实现字符串反转 name = "小黑半夜三点在被窝玩愤怒的小鸟"(步长、while、for)
#方法一
name = "小黑半夜三点在被窝玩愤怒的小鸟"
a = name[::-1]
print(a)
# 方法二
name = "小黑半夜三点在被窝玩愤怒的小鸟"
name_len = int(len(name))
a = -1
b = ""
while true:
    b = name[a]
    b = b + b
    if a < -(name_len):
        break
    a = a - 1
print(b)
# 方法三
name = "小黑半夜三点在被窝玩愤怒的小鸟"
b = ""
for a in name[-1]:
    b = b + a
print(b)
"""
# 4.写代码,有如下列表,利用切片实现每一个功能
"""
li = [1, 3, 2, "a", 4, "b", 5,"c"]
通过对li列表的切片形成新的列表 [1,3,2]
a = li[0:3]
print(a)
通过对li列表的切片形成新的列表 ["a",4,"b"]
a = li[3:6]
print(a)
通过对li列表的切片形成新的列表  [1,2,4,5]
a = li[::2]
print(a)
通过对li列表的切片形成新的列表 [3,"a","b"]
a = li[1:-1:2]
print(a)
通过对li列表的切片形成新的列表 [3,"a","b","c"]
a = li[1::2]
print(a)
通过对li列表的切片形成新的列表  ["c"]
a = li[-1:]
print(a)
通过对li列表的切片形成新的列表 ["b","a",3]
a = li[5::-2]
print(a)
"""
# 5.请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"]
"""
0 武沛齐
1 景女神
2 肖大侠
users = ["武沛齐","景女神","肖大侠"]
count = 0
for i in users:
    print(count,i)
    count += 1
"""
# 6.请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:
"""
1 武沛齐
2 景女神
3 肖大侠
users = ["武沛齐","景女神","肖大侠"]
count = 1
for i in users:
    print(count,i)
    count += 1
"""
# 7.写代码,有如下列表,按照要求实现每一个功能
"""
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
1.将列表lis中的"k"变成大写,并打印列表。
lis[2] = 'k'
print(lis)
2.将列表中的数字3变成字符串"100"
lis[1] = "100"
print(lis)
3.将列表中的字符串"tt"变成数字 101
lis[3][2][1][0] = 101
print(lis)
4.在 "qwe"前面插入字符串:"火车头"
lis[3].insert(0,"火车头")
print(lis)
"""
# 8.写代码实现以下功能
#如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品:
"""
0,汽车
1,飞机
2,火箭
用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。

googs = ['汽车','飞机','火箭']
count = len(googs)
for i in range(0,count):
    print(i,googs[i])   #输出,打印
a = input("请用户输入:")     #请用户输入
a = int(a)
text = "您选择的是:%s" %(googs[a],)
print(text)
"""
# 10.请用代码实现
"""
li = "alex"
#利用下划线将列表的每一个元素拼接成字符串"a_l_e_x"
a = "_".join(li)
print(a)
"""
# 11.利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。
"""
a = []
for b in range(0,101):
    if b % 2 == 0:
        a.append(b)
print(a)
"""
# 12.利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并追加到一个列表。
"""
a = []
for b in range(0,51):
    if b % 3 == 0:
        a.append(b)
print(a)
"""
# 13.利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并插入到列表的第0个索引位置,最终结果如下:
"""
a = []
for b in range(0,51):
    if b % 3 == 0:
        a.insert(0,b)
print(a)
"""
# 14.查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。
"""
li = ["taibai ", "alexc", "abc ", "egon", " ritian", "wusir", "  aqc"]
c = []
for b in li: # 循环li里面所有元素
    b = b.strip()   # 去除b里的空格
    if b.startswith("a") == true:
        c.append(b)
print(c)
"""
# 15.判断是否可以实现,如果可以请写代码实现。
"""
li = ["alex",[11,22,(88,99,100,),33], "wusir", ("ritian", "barry",), "wenzhou"]
- 请将 "wusir" 修改成 "武沛齐"
li[2] = "武沛齐"
print(li)
# - 请将 ("ritian", "barry",) 修改为 ['日天','日地']
li[3] = ['日天','日地']
print(li)
- 请将 88 修改为 87
 不能
- 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "文周"
a = li.pop()
li.insert(0,a)
print(li)
"""