注意:
1、map()返回的是一个可迭代对象的内存地址,如果要看它具体的值,有两种方式:
法1:在map()前面,加list( )、tuple( )、set( ),将它强制转化为列表、元组、集合类型。
法2:用for循环遍历。
2、使用join( 可迭代对象)对可迭代对象进行拼接的时候要注意:
可迭代对象中的值(或者叫可迭代对象中的成员)必须是字符串类型,否则不能用join( )进行拼接。
如果是整型怎么办?两种方法:假设下面的a是一个可迭代对象
法1:用列表生成式:遍历这个可迭代对象,然后把遍历的结果转为字符串类型,结果返回一个列表。 b = " ".join(str(x) for x in a)
法2:用map( )。将可迭代对象a里的成员全部转为字符串类型。
b = "".join(map(str, a))
三种方法:
# 法1 推荐
a = list(map(int, input().split()))
print(a)
# 输入:2 1 3
# 结果:
[2, 1, 3]
# 法2 推荐
a = [int(x) for x in input().split()]
print(a)
# 法3—— 就是法1法2的拆开写法
a = list(input().split())
a = [int(a[i]) for i in range(0, len(a))]
print(a)
法1:强制转化为列表、元组、集合类型。
法2:用for循环遍历。
a = map(int, input().split())
print(a)
# 输入:
3 2 1
# 结果:
2、input( ) 无论输入字母、数字、汉字、符号,结果返回的都是字符串类型。
所以,上面输入的2 1 3,结果就是"2 1 3"
例如:
a = input()
print(a)
print(type(a))
# 输入:2 1 3
# 结果:
2 1 3
#输入:你好,abc{1}23
#结果:
你好,abc{}23
如果输入的时候用空格进行了分隔的话,用split( )可以实现字符串的分割,结果返回的是一个列表。当然这里的空格可以换成任意的符号或字母。
需要注意的是:以谁进行分割,返回的结果列表中那个字符就没了,相当于从那个字符切下去,取切下去之后的东西,类似于,一根绳子按打了结的地方切下去,打结的地方就没了。
例如:
a = input().split()
print(a)
# 输入:2 1 3
# 结果:
['2', '1', '3']
a = input().split("!") # 以!进行分割
print(a)
#输入:1!2!3
# 结果:
['1', '2', '3']
a = input().split("z") # 以z进行分割
print(a)
# 输入:zabczd # 以谁进行分割,结果中那个字符就没了,相当于从那个字符切下去
# 结果:
['', 'abc', 'd']
二、将[2, 1, 3] 转化为:[‘2‘, ‘1‘, ‘3‘]
a = [1, 2, 3]
b = []
for i in a:
b.append(str(i))
print(b)
# 结果:
['1', '2', '3']
三、将[2, 1, 3] 转化为:"213" 或者 "2 1 3"
a = [2, 1, 3]
b = "".join(str(x) for x in a) # !!!
print(b)
print(type(b))
# 结果:
213
把"".join() 改成" ".join() 在引号引号里面加空格。
a = [2, 1, 3]
b = " ".join(str(x) for x in a)
print(b)
print(type(b))
# 结果:
2 1 3
使用join( 可迭代对象)对可迭代对象进行拼接的时候要注意:
可迭代对象中的值必须是字符串类型,否则不能用join( )进行拼接。
例如:将[2, 1, 3] 转化为:"213"时候会遇到的问题。
a = [2, 1, 3]
b = "".join(a)
print(b)
# 结果:
b = "".join(a)
TypeError: sequence item 0: expected str instance, int found
所以,要先把列表a里的成员全部转为字符串类型,两种方法:
法1:用列表生成式:遍历这个列表,然后把遍历的结果转为字符串类型,结果返回一个列表。
b = " ".join(str(x) for x in a)
法2:用map( )。将可迭代对象a里的成员全部转为字符串类型。
b = "".join(map(str, a))
最终结果:
# 法1
a = [2, 1, 3]
b = "".join(str(x) for x in a)
print(b)
print(type(b))
# 结果:
213
# 法2
a = [2, 1, 3]
b = "".join(map(str, a))
print(b)
print(type(b))
# 结果:
213