首页 > 其他 > 详细

元组、集合及字符串

时间:2020-06-12 20:54:03      阅读:58      评论:0      收藏:0      [点我收藏+]

一、元组

1.概念

和列表相似,本质上是一种有序的集合

元组和列表的不同之处:

a.列表:[] 元组:()

b.列表中的元素可以进行增加和删除操作,但是,元组中的元素不能修改【元素:一旦被初始化,将不能发生改变】

2.和列表比较

创建列表:

创建空列表:list1 = []

创建有元素的列表:list1 = [元素1,元素2,。。。。。]

创建元组

创建空元组:tuple1 = ()

创建有的元组:tuple1 = (元素1,元素2,。。。。)

#1.定义元组
tuple1 = ()
print(tuple1,type(tuple1))
?
tuple2 = (2,4,45)
print(tuple2)
?
#注意1:和列表类似,元组是有序的,其中可以存储重复元组,可以存储不同类型的数据
tuple3 = (2,4,45,2,2,2,"abc",False)
print(tuple3)
?
#注意2:如果元组中只有一个元素,则需要在元素的后面添加逗号,为了消除歧义
list1 = [10]
print(list1,type(list1))
#tuple4 = (10)   #tuple4 = 10
tuple4 = (10,)
print(tuple4,type(tuple4))
?
#2.元组元素的访问
tuple1 = (2,4,45,2,2,2,"abc",False)
#a.获取,和列表相同,元组中元素的获取通过索引操作的
print(tuple1[1])
?
#b.注意3:元组属于不可变的数据类型,一旦被定义之后,将不能修改元素
#tuple1[1] = 66 #TypeError: ‘tuple‘ object does not support支持 item项目 assignment赋值
?
#3.元组操作
#元组组合,元组元素的重复,判断元组是否存在,切片和列表的用法完全相同
?
#4.系统功能
t1 = (34,5,4,65,7,4,4)
print(len(t1))
print(max(t1))
print(min(t1))
?
print(t1.index(4))
print(t1.count(4))
?
#元组和列表之间实现相互转换
#list(元组) ---》将元组转化为列表
#tuple(列表) ----》将列表转换为元组
t1 = (34,5,4,65,7,4,4)
print(type(t1))
r1 = list(t1)
print(type(r1))

#5.遍历元组
t1 = (34,5,4,65,7,4,4)
?
for num in t1:
print(num)
?
for i in range(len(t1)):
print(t1[i])
?
#enumerate(x)将x容器转化为枚举【容器】,其中存储的是索引和数据的一 一对应的关系
for i,num in enumerate(t1):
print(i,num)
?
#6.使用场景
"""
如果数据不能改变,则使用元组,比如表示星期,月份,颜色等
如果数据需要随时发生概念,则使用列表,在实际开发中,使用列表较多
"""

二、字典

1.概念

列表和元组的使用缺点:当存储的数据要动态添加、删除的时候,我们一般使用列表,但是列表有时会遇到一些麻烦

# 定义一个列表保存,姓名、性别、职业
nameList = [‘尼古拉斯.赵四‘, ‘男‘, ‘铁憨憨‘];
?
# 当修改职业的时候,需要记忆元素的下标
nameList[2] = ‘演员‘  
?
# 如果列表的顺序发生了变化,添加年龄
nameList = [‘尼古拉斯.赵四‘, 18, ‘男‘,  ‘铁匠‘]
?
# 此时就需要记忆新的下标,才能完成名字的修改
nameList[3] = ‘xiaoxiaoWang‘

解决方案:既能存储多个数据,还能在访问元素的很方便的定位到需要的元素,采用字典

语法:{键1:值1, 键2:值2, 键3:值3, ..., 键n:值n}

说明:

  • 字典和列表类似,都可以用来存储多个数据

  • 在列表中查找某个元素时,是根据下标进行的;字典中找某个元素时,是根据‘名字‘(就是冒号:前面的那个值,例如上面代码中的‘name‘、‘id‘、‘sex‘)

  • 字典中的每个元素都由2部分组成,键:值。例如 ‘name‘:‘班长‘ ,‘name‘为键,‘班长‘为值

  • 键可以使用数字、布尔值、元组,字符串等不可变数据类型,但是一般习惯使用字符串,切记不能使用列表等可变数据类型

  • 每个字典里的key都是唯一的,如果出现了多个相同的key,后面的value会覆盖之前的value

习惯使用场景:

  • 列表更适合保存相似数据,比如多个商品、多个姓名、多个时间

  • 字典更适合保存不同数据,比如一个商品的不同信息、一个人的不同信息

2.定义字典

#语法:字典名 = {key1:value1,key2:value2.....}

#1.创建空字典
dict1 = {}
print(dict1,type(dict1))

#2.创建非空字典
#方式一
dict21 = {"name":"张三","age":18}
print(dict21)

#方式二
#dict(key=value),key是一个变量名,value是一个值
dict22 = dict(a="avvv",b="2353")
print(dict22)
dict22 = dict(a=200,b=33)
print(dict22)

#方式三
#dict()和zip(序列),zip表示映射
#dict(zip([key1,key2,key3....],[value1,value2,value3....]))
#注意:key的数量和value的数量可以不一致,以少的作为参考
z1 = zip([1,2],["a","b","c"])
dict23 = dict(z1)
print(dict23)

dict23 = dict(zip(("name","age"),("aaa",10)))
print(dict23)

dict23 = dict(zip("xyz","abc"))
print(dict23)

#方式四
#[(key1,value1),(key2,value2)...]---{key1:value1,key2:value2....}
dict24 = dict([("a",10),("b",20),("c",30)])
print(dict24)

一、字典

1.元素访问

#1.获取
dict1 = {"zhangsan":50,"lisi":99,"jack":100}
?
#a.#语法:字典名[key],获取指定key对应的value
score1 = dict1["lisi"]
print(score1)
print(dict1["jack"])
?
#注意:通过字典名[key]访问字典元素的时候,key必须存在
#print(dict1["tom"]) #KeyError: ‘tom‘
?
#b.get(key):通过get访问字典元素,如果key不存在,会返回空值None
print(dict1.get("lisi"))
print(dict1.get("tom"))
?
print("=" * 30)
?
#2.修改
#语法:字典名[key] = 值
print(dict1.get("lisi"))
dict1["lisi"] = 77
print(dict1.get("lisi"))
print(dict1)
?
print("=" * 30)
?
#3.添加
print(dict1)
print(dict1.get("bob"))
dict1["bob"] = 78
print(dict1)
?
?
"""
结论:
a.字典属于可变数据类型
b.通过 字典名[key] = 值 操作字典,如果key存在则表示修改,如果key不存在则表示添加键值对
c.字典是无序的,后期collections模块中OrderedDict专门用来生成有序字典
"""

2.系统功能

#1.增
dict1 = {"zhangsan":50,"lisi":99,"jack":100,"bob":66}
print(dict1)
#方式一:
dict1["aaa"] = 10
?
#方式二:update(),更新,合并字典
#注意:dict1.update(dict2),将dict2合并到dict1
dict2 = {"zhangsan":20}
dict1.update(dict2)
?
#+:可以使用与:数字 + 数字,str + str,list + list ,tuple + tuple
print([1,2,3] + [5,6])
#print(dict1 + dict2) #TypeError: unsupported operand type(s) for +: ‘dict‘ and ‘dict‘
?
?
#方式三:setdefault(key,default),如果default定义,则添加一对键值对,
# 如果省略default,则添加的键值对为:key:None
dict1 = {"zhangsan":50,"lisi":99,"jack":100,"bob":66}
print(dict1)
?
dict1.setdefault("111")
print(dict1)
?
dict1.setdefault("222",44)
print(dict1)
?
#get(key,default),如果key存在,则返回对应的value
#如果key不存在,如果省略default,则返回None,但是如果未省略default,则返回default
print(dict1.get("zhangsan"))
print(dict1.get("zhangsan",33))
?
print(dict1.get("abc"))
print(dict1.get("abc",33))

?
#2.删
#方式一:pop(key):根据指定的key删除键值对,返回值为被删除的key对应的value
dict1 = {"zhangsan":50,"lisi":99,"jack":100,"bob":66}
print(dict1)
?
result = dict1.pop("lisi")
print(dict1)
print(result)
?
#方式二:del
del dict1["bob"]
print(dict1)
?
#方式三:clear(),清空
dict1.clear()
print(dict1)  #{}
?
#del dict1
?
?
#3.改
dict1 = {"zhangsan":50,"lisi":99,"jack":100,"bob":66}
dict1["jack"] = 100
?
?
#4.查
dict1 = {"zhangsan":50,"lisi":99,"jack":100,"bob":66}
#a.len():获取字典中键值对的对数
print(len(dict1))
?
#b.keys():获取字典中所有的key
print(dict1.keys())
?
#c.values():获取字典中所有的value
print(dict1.values())
?
#d.items():获取字典中所有的键值对
print(dict1.items())
"""
dict_keys([‘zhangsan‘, ‘lisi‘, ‘jack‘, ‘bob‘])
dict_values([50, 99, 100, 66])
dict_items([(‘zhangsan‘, 50), (‘lisi‘, 99), (‘jack‘, 100), (‘bob‘, 66)])
"""
# d1 = dict([(‘zhangsan‘, 50), (‘lisi‘, 99), (‘jack‘, 100), (‘bob‘, 66)])
# print(d1)
?
#5.其他
#a.copy()
dict1 = {"zhangsan":50,"lisi":99,"jack":100,"bob":66}
dict2 = dict1.copy()
dict1["lisi"] = 44
print(dict2)
?
#b.dict.fromkeys(序列):了解,序列可以是列表,元组,
r0 = dict.fromkeys(["a","b"])
print(r0)  #{‘a‘: None, ‘b‘: None}
?
r1 = dict.fromkeys(("a","b"))
print(r1)
?
r2 = dict.fromkeys(["a","b"],"nice")
print(r2)
?
r3 = dict.fromkeys(["a","b"],["nice","good"])
print(r3)

3.字典推导式

?
#字典的推导式:{key:value for循环   if语句}
?
list1 = [i * 2 for i in range(10)]
print(list1)
?
dict1 = {i * 2 for i in range(10)}
print(type(dict1))  #<class ‘set‘>
?
dict1 = {i * 2:i for i in range(10)}
print(dict1)
print(type(dict1))  #<class ‘dict‘>
?
?
dict2 = {m:n for m in "ABC" for n in "XYZ"}
print(dict2)  #{‘A‘: ‘Z‘, ‘B‘: ‘Z‘, ‘C‘: ‘Z‘}
"""
说明:
{‘A‘: ‘Z‘, ‘B‘: ‘Z‘, ‘C‘: ‘Z‘}
"""
?
for m in "ABC":
for n in "XYZ":
    pass

4.遍历字典

dict1 = {"zhangsan":50,"lisi":99,"jack":100,"bob":66}
?
#方式一:直接遍历               ******
for key in dict1:
print(key,dict1[key])
?
?
#方式二:enumerate,很少用
# for i,key in enumerate(dict1):
#     print(i,key,dict1[key])
?
?
#方式三:keys(),了解,更多使用方式一
for key in dict1.keys():
print(key,dict1[key])
?
?
#方式四:values(),通过key获取value结果是唯一的,但是通过value获取key结果不是唯一的
for value in dict1.values():
print(value)
?
#方式五:items(),获取key-value对       ******
for key,value in dict1.items():
print(key,value)

 

 

三、集合

1.概念

Python中的集合跟数学上的集合是一致的,不允许有重复元素,而且可以进行交集、并集、差集等运算

set与dict类似,但是与dict的区别在于只是一组key的集合,不存储value

本质:无序且无重复元素的集合

表示:{}

2.创建

#1.{}默认表示字典,并不是集合
#注意:1.无序的,2.可以存放不同类型的数据 3.不允许存放重复元素【去重】
set1 = {14,"faf",True,14,14,14}
print(set1)
print(type(set1))
?
#2.set()
set2 = set()
print(set2,type(set2))
?
set3 = set([2,54,54,5,4])
print(set3,type(set3))
?
set4 = set((2,54,54,5,4))
print(set4,type(set4))
?
#注意:集合中相当于存储了字典中的key
set5 = set({10:1,20:2,30:3})
print(set5,type(set5))

3.系统功能

#1.增
#a.add()
s1 = {1,2,3,4}
print(s1)
?
s1.add(5)
print(s1)
?
#注意1:如果元素已经存在,则添加失败
# s1.add(3)
# print(s1)
?
#注意2:通过add向集合中添加元素,只能添加不可变的数据类型
s1.add("abc")
print(s1)
?
s1.add((7,8))
print(s1)
?
#错误演示
# s1.add([7,8])
# # print(s1)
# s1.add({7:9})
# print(s1)
?
?
#b.update(),更新
s1 = {1,2,3,4}
print(s1)
?
#注意:通过update向集合中添加元素,只能添加可迭代对象【容器】,添加的时候打碎加入
# s1.update(10)
# print(s1)
?
s1.update("10")
print(s1)
?
s1.update([10,20])
print(s1)
?
s1.update((7,9))
print(s1)
?
s1.update({66:58})
print(s1)
?
#2.删
?
#a.remove(x),删除指定的元素,删除集合中不存在的元素,则会报错
s1 = {1,2,3,4}
print(s1)
s1.remove(3)
print(s1)
?
#注意:删除集合中不存在的元素,则会报错,为KeyError【字典中key不存在时】
# s1.remove(20)   #KeyError: 20
# print(s1)
?
#b.discard(x),删除指定的元素,删除集合中不存在的元素,不会发生错误
s1 = {1,2,3,4}
print(s1)
s1.discard(3)
print(s1)
?
s1.discard(66)
print(s1)
?
#c.pop(),随机删除集合中的一个元素
s1 = {1,2,3,4}
print(s1)
s1.pop()
print(s1)
?
#3.其他
s1 = {1,2,3,4}
print(s1)
#a.len()
print(len(s1))
?
#b.clear()
#s1.clear()
?
#c.copy()
s2 = s1.copy()

4.集合间的运算

s1 = {1,2,3}
s2 = {3,4,5}
?
#一、符号表示
#1.交集
print(s1 & s2)
?
#2.并集
print(s1 | s2)
?
#3.不同时包含于s1和s2的元素
print(s1 ^ s2)  #{1, 2, 4, 5}
?
#4.集合s1中包含但是集合s2中不包含的元素
print(s1 - s2)
?
print("=" * 30)
?
#二、系统功能
?
#|
newset1 = s1.union(s2)
print(newset1)
?
#&
newset1 = s1.intersection(s2)
print(newset1)
?
#-
newset1 = s1.difference(s2)
print(newset1)

四、数字类型

1.数学功能

内置功能

  • abs(x):返回数字的绝对值

  • (x>y)-(x<y):比较大小,

  • max(x1,x2,…):返回给定参数的最大值

  • min(x1,x2,…):返回给定参数的最小值

  • pow(x,y):求x的y次方的值

  • round(x,n):返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数

导入math模块 import math;

  • ceil(x):返回x的上入整数,不能直接访问,需要通过math访问,即math.ceil(18.1)

  • floor(x):返回x的下入整数,同ceil的用法

  • modf(x):返回x的整数部分和小数部分,两部分的数值符号与x相同,整数部分以浮点型表示,同ceil的用法

  • sqrt(x):返回数字x的平方根,数字可以为负数,返回类型为实数【浮点型】,同ceil的用法

    import math
    ?
    #一、内置函数
    #a.求绝对值                         ******
    print(abs(-18))  #absolute
    ?
    #b.max()/min(),求数的最值
    print(max(3,54,5,45,466,8,7))
    print(min(3,54,5,45,466,8,7))
    print(min([3,54,5,45,466,8,7]))
    print(min((3,54,5,45,466,8,7)))
    ?
    #c.求x的y次方 x ** y               ******
    print(pow(3,5))
    print(3 ** 5)
    ?
    #d.求一个数的四舍五入值,                 ******
    # round(x,y),如果省略y表示取整【四舍五入】,y表示保留小数点几位
    print(round(3.456))
    print(round(3.656))
    print(round(3.456,2))
    print(round(3.456784,3))
    print(round(3.456,1))
    ?
    #e.求和,sum(iterable,x),将容器中所有元素进行求和,然后再加上x
    print(sum([2,3,5,54]))
    print(sum((2,3,5,54)))
    ?
    print(sum([2,3,5,54],1))
    print(sum((2,3,5,54),100))
    ?
    #二.math.xxx(),注意:一定要导入import math
    #注意:自定义的文件名一定不要和系统模块重名
    ?
    #a.ceil(),天花板,向上取整     ******
    print(math.ceil(18.1))
    print(math.ceil(18.9))
    ?
    #b.floor(),地板,向下取整     ******
    print(math.floor(18.1))
    print(math.floor(18.9))
    ?
    #c.modf(),注意:返回值为一个元组(小数部分,整数部分) 了解
    #print(math.modf(22.823))
    ?
    #d.sqrt():求平方根               ******
    #注意:算术平方根,得到的结果为一个浮点型
    print(math.sqrt(9))   #3.0

#e.数学常量 print(math.pi) #圆周率 print(math.e) #自然常数

?

2.随机数功能

import  random
?
#1.random.choice(iterable):从一个可迭代对象中随机获取一个数据
n1 = random.choice([4,5,6,7,"aa","bbb",True])  #列表
print(n1)
?
n1 = random.choice((4,5,6,7,"aa","bbb",True))   #元组
print(n1)
?
n1 = random.choice("fahjghjga")
print(n1)
?
#注意:前闭后开
n1 = random.choice(range(1,100))
print(n1)
?
#2.random.randint(start,end):从一个指定区间内获取一个数据
#注意:闭区间
n2 = random.randint(1,100)
print(n2)
?
#3.random.randrange(start,end,step),类似于range(start,end,step)的使用
?
#练习:产生一个4~10之间的随机数
print(random.choice(range(4,11)))
print(random.randint(4,10))
print(random.randrange(4,11))
?
#4.random.random():获取0~1之间的随机数,结果为浮点型
print(random.random())
print(round(random.random(),2))
?
#练习:产生一个20~100之间的随机数,包含浮点型
#[0,1]--->[0,80]---->[20,100]
print(random.random() * 80 + 20)
print(random.randint(20,100) + random.random())
?
#5.random.uniform()
print(random.uniform(20,100))

五、字符串

由若干个字符组成的一个序列被称为字符串,其中的字符可以是字母,数字,符号,中文等

注意:字符串属于不可变的数据类型,可以作为字典的key

1.创建

#1.单引号
str1 = ‘abfjah‘
print(str1)
?
#2.双引号
str2 = "abcd"
print(str2)
?
#3.三引号【可以是单引号可以是双引号】:在内部可以换行,原样输出
str3 = ‘‘‘aaa
bbb
ccc
dddd‘‘‘
print(str3)
?
#4.注意:字符串的组成
str4 = "abc123中文&%¥#"
print(str4)
?
#5.转义字符:普通字符----》特殊字符   特殊字符----》普通字符 \xxxx
#打印"hello"
s1 = "\"hello\""
print(s1)
?
s1 = "‘hello‘"
print(s1)
?
s1 = ‘"hello"‘
print(s1)
?
"""
\n   换行
\t   tab键
\r
"""
s2 = "abc\nfhajf"
print(s2)
s2 = "abc\tfhajf"
print(s2)
?
#mac下的路径表示可以直接使用
#/Users/yangyang/Desktop/NZ2002/Day7/notes
path1 = "/Users/yangyang/Desktop/NZ2002/Day7/notes"
print(path1)
?
#windows下的路径
path2 = "c:\\Users\\Adminators\\Desktop"
print(path2)
?
#注意:如果一个字符串中有多个字符需要转义,则可以借助于r"xxxxx",常用于路径或者正则表达式
path2 = r"c:\Users\Adminators\Desktop"
print(path2)

2.操作

#注意;字符串是不可变的数据类型,但凡涉及到字符串的更改,都是生成了新的字符串,对原字符串没有影响
?
#1.+:拼接
str1 = "abc"
str2 = "hello"
print(str1 + str2)
print(str1)
?
#2.*:重复
print(str1 * 3)
?
?
#3.in和not in
print("a" in str1)
print("a" not in str1)
?
?
#4.切片:列表和元组和字符串的切片原理完全相同,列表---》列表,元组----》元组,字符串----》字符串
str1 = "abcdefgh"
?
print(str1[:4])   #abcd
print(str1[1:])    #bcdefgh
print(str1[1:4])   #bcd
?
print(str1[-1:-4])  #""
print(str1[-1:-4:-1])   #hgf
?
print(str1[-4:-1])      #efg
print(str1[-4:-1:-1])   #""
?
print(str1[4:1:-1])     #edc
print(str1[4:1])   #""
?
print(str1[::-1])  #倒序
?
#5.遍历
str1 = "fjajfhj"
for c1 in str1:
print(c1)
?
for i in range(len(str1)):
print(str1[i])
?

3.系统功能

3.1转换

eval():将str转换为有效的表达式

upper():将小写字母转换为大写

lower():大---》小

swapcase():大---》小 小----》大

capitalize():首单词的首字母大写,其他全部小写

title():每个单词的首字母大写,其他全部小

ord(),chr()

3.2查找

find():从左往右进行检索,返回被查找的子字符串在原字符串中第一次出现的位置,如果查找不到返回-1

rfind():从右往左进行检索

index():从左往右进行检索,返回被查找的子字符串在原字符串中第一次出现的位置,如果查找不到则直接报错

rindex():从右往左进行检索

3.3填充

center(width[,fillchar]):用fillchar填充指定的字符串,填充之后的长度为width,原字符串居中显示

ljust(width[,fillchar]):用fillchar填充指定的字符串,填充之后的长度为width,原字符串居左显示,

rjust(width[,fillchar]):用fillchar填充指定的字符串,填充之后的长度为width,原字符串居右显示,

zfill(width):原字符串居右显示,剩余的字符默认用0填充

3.4提取

strip():去除一个指定字符串中两端指定的子字符

lstrip():去除一个指定字符串中左边指定的子字符

rstrip():去除一个指定字符串中右边指定的子字符

3.5合并和分割

join():使用指定的子字符串将列表中的元素连接【列表-----》字符串】

split():使用指定的子字符串将原字符串进行分割,得到一个列表 【字符串-----》列表】

3.6替换

replace(old,new):将原字符串中的old替换为new

映射替换:

maketrans():生成映射表

translate():根据映射表将指定字符串中的指定字符替换为映射表中对应的字符

3.7判断

isalpha():一个字符串非空并字符全部是字母才返回True

isalnum():一个字符串非空并字符是字母或者数字才返回True ***

isupper()/islower()/istitle():和upper,lower,title有关

isdigit()/isdecimal():一个字符串非空并字符全部是数字才返回True ***

startswith();判断一个字符串是否是以指定自字符串开头【前缀】 ***

endswith():判断一个字符串是否是以指定自字符串结尾【后缀】

3.8编码和解码

encode():编码

decode();解码

"""
字符串类型:str   字节类型:bytes
?
编码:将字符串类型转换为字节类型的过程
解码:将字节类型转换为字符串的过程
?
常用的编码格式:
utf-8/UTF-8/utf8/UTF8
gbk/GBK
"""
?
#1.编码
#方式一:字符串.encode(编码格式)
str1 = "abc23435测试测试%#@*"
r0 = str1.encode("utf-8")
r1 = str1.encode("gbk")
print(r0,type(r0))
print(r1,type(r1))
?
#方式二:bytes(str,encoding)
str1 = "abc23435测试测试%#@*"
r0 = bytes(str1,encoding="utf-8")
r1 = bytes(str1,encoding="gbk")
print(r0,type(r0))
print(r1,type(r1))
?
#2.解码
#方式一:字节.decode(编码格式)
r2 = r0.decode("utf-8")
print(r2)
r3 = r1.decode("gbk")
print(r3)
?
#方式二:str(bytes,encoding)
r2 = str(r0,encoding="utf-8")
print(r2)
r3 = str(r1,encoding="gbk")
print(r3)
?
#注意:编解码的时候格式一定要保持一致,否则会出现乱码
3.9格式化

占位符

format()

#1.占位符格式化
print("姓名:%s 年龄:%d 爱好:%s 成绩:%d" % ("zhangsan",18,"打篮球",100))
?
#2.format()实现字符串的格式化
r0 = "姓名:{},年龄:{}".format("aaa",10)
print(r0)
?
?
#注意1:如果对{}没有标明,则后面数据的数量 大于等于 {}的数量
r0 = "{}-{}-{}-{}".format("aaa",10,10,20) #IndexError: tuple index out of range
print(r0)
?
#注意2
r0 = "{}-{}---{}".format("aaa",10,30,20)
print(r0)
?
r0 = "{0}-{3}".format("aaa",10,30,20)
print(r0)
?
r0 = "{0}-{3}-{3}-{3}".format("aaa",10,30,20)
print(r0)
?
r0 = "{0}-{1}-{2}".format("aaa",[3,4,5],30,20)
print(r0)

元组、集合及字符串

原文:https://www.cnblogs.com/jiangypeng/p/13110057.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!