Python基础知识:列表、元组(tuple)、字典、集合、字符串

    技术2022-07-10  146

    列表、元组(tuple)、字典、集合、字符串

    列表可以嵌套;

    领取Python学习资料可以加小编的微信:tz2020jd

    x = [['a', 'b', 'c'], [1, 2, 3]] print(x[0]) # ['a', 'b', 'c'] print(x[0][1]) # 'b'

    元组不同于列表的是: 元组不能修改,用()表示;(不能增删改) 元组一般保存不同类型的数据; 注意: 只有一个元素的元组: single_tuple = (5,) ,也就是说元组中只包含一个元素时,需要在元素后面添加逗号;不能这样写 single_tuple = (5),这样是一个整形的变量;另外,创建元组也可以不加上括号;

    tup = "a", "b", "c", "d" print(tup) print(type(tup))

    tup2 = ("a",)  # 一个元素的元组 (后面必须加上一个括号) print(tup2) print(type(tup2))

     

    输出:

    ('a', 'b', 'c', 'd') <class 'tuple'> ('a',) <class 'tuple'>

     

    元组的用途: ① 作为函数的参数和返回值;②格式化字符串(格式字符串本身就是一个元组);(3)让列表不可以被修改,保护数据安全; 格式化字符串和元组的关系,看下面的三个print输出是一样的: # 元组和格式化字符串的关系 info_tuple = ("小明", 21, 1.85) print("%s 年龄是 %d 身高是 %.2f" % ("小明", 21, 1.85)) print("%s 年龄是 %d 身高是 %.2f" % info_tuple)

    info_str = "%s 年龄是 %d 身高是 %.2f" % info_tuple print(info_str)

     

    元组和列表可以相互转换 : ①使用list(元组)将元组转换成列表;②使用tuple将列表转换成元组; 字典: ① 键必须是唯一的 ②值可以取任意类型,但是键只能使用字符串、数字或者元组(键只能是不可变类型)。 **遍历字典的时候for k in dict 中的k是键,而不是值。(普通的for),不过也可以通过items()方法遍历键值对: ** dict_student = {'name': 'xiaoming', 'age': '18', 'qq': "1234"}

    # 遍历方式一 for k in dict_student:  # k 是key     print(k, end=" ")     print(dict_student[k])

    print("*" * 20) # 遍历方式二 for k, v in dict_student.items():     print(k, v)

     

    字符串中的转义字符:\n表示换行,而\r表示回车,字符串中的函数isspace()判断的时候\t\n\r都是表示的空白字符; isdecimla()、isdigit()、isnumeric()都不能判断字符串中的小数,(可以判断字符串中的整数); 集合set的使用: 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 集合还有一些方法add()、update()、pop()等; student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'} print(student)  # 输出集合,重复的元素被自动去掉

    if 'Rose' in student:     print('Rose 在集合中') else:     print('Rose 不在集合中')

    # set可以进行集合运算 a = set('abracadabra') b = set('alacazam')

    print(a - b)  # a和b的差集 print(a | b)  # a和b的并集 print(a & b)  # a和b的交集 print(a ^ b)  # a和b中不同时存在的元素

    输出:

    {'Jim', 'Mary', 'Jack', 'Rose', 'Tom'} Rose 在集合中 {'b', 'd', 'r'} {'b', 'l', 'c', 'd', 'z', 'm', 'a', 'r'} {'c', 'a'} {'b', 'm', 'l', 'r', 'd', 'z'}

    相关公共方法: len、del、max、min(只会比较字典的key); in、not in的使用(类似数据库…); pass关键字的使用: 比如if … 下面没有写语句,python会提示报错,但是你可以写一个pass就不会报错了;也就是说如果在开发程序时,不希望立即编写分支内部的代码,可以使用pass作为一个占位符;可以保证程序代码结构正确; TODO关键字的使用,在编写程序框架的时候,可以用TODO标示某个地方还没有做某事; 迭代器的使用 import sys  # 引入 sys 模块

    lst = [1, 2, 3, 4] it = iter(lst)  # 创建迭代器对象

    # 使用for 遍历迭代器 for x in it:     print(x, end=" ") print()

    it = iter(lst)  # 之前那个已经到了最后了,再次获取 # 使用next + while遍历 while True:     try:         print(next(it), end=" ")     except StopIteration:  # 防止无限循环         sys.exit()  # 退出程序 print()

    输出:

    1 2 3 4  1 2 3 4  1 2 字符串中切片的使用: ①类似截取,但是可以指定步长;②python中支持倒序索引,最后一个是-1,倒数第二个是-2…;

    # 切片的使用 num_str = "12345678"

    print(num_str[2:6])  # [2,5] print(num_str[2:])  # 从2位置到结束 print(num_str[0:6])  # 输出[0,5]的 print(num_str[:6])  # 一开始到5的 print(num_str[:])  # 全部输出 print(num_str[::2])  # 指定步长  第三个参数指定步长 print(num_str[1::2])  # 从第一个开始 步长为2

    print("*" * 20) print(num_str[-1])  # 输出最后一个位置的 print(num_str[2:-1])  # 从第二个开始到倒数第二个

    print("*" * 20) # 一个面试题 逆序输出 print(num_str[-1::-1])  # 步长为-1代表向左切片,从最后一个开始切 print(num_str[::-1])

    输出:

    3456 345678 123456 123456 12345678 1357 2468 ******************** 8 34567 ******************** 87654321 87654321  

    领取Python学习资料可以加小编的微信:tz2020jd

    Processed: 0.011, SQL: 9