列表可以嵌套;
领取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