列表中的字符串成员 转化为 整型成员 。如:将[‘2‘, ‘1‘] 转化为:[2, 1]、map()返回的是一个可迭代对象内存地址、join(可迭代对象),要注意:可迭代对象中的成员必须是字符串类型

注意:

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))

一、将[‘2‘, ‘1‘, ‘3‘] 转化为:[2, 1, 3]

三种方法:

# 法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、 map()返回的是一个可迭代对象的内存地址,如果要取它的值,有两种方式:

 法1:强制转化为列表、元组、集合类型。

法2:用for循环遍历。

a = map(int, input().split())
print(a)


# 输入:
3 2 1
# 结果:


# 要看map()具体的值,有两种方法
# 法1:强制转化为列表、元组、集合类型
a = list(map(int, input().split()))
print(a)
print(type(a))

# 输入:
3 2 1
# 结果:
[3, 2, 1]


当然,也可以转换为tuple()、set()类型。
a = set(map(int, input().split()))
print(a)
# 结果:
{1, 2, 3}

a = tuple(map(int, input().split()))
print(a)
# 结果:
(3, 2, 1)



# 法2:用for循环遍历
a = map(int, input().split())
for i in a:
    print(i)

# 输入:
3 2 1
# 结果:
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

你可能感兴趣的:(python基础,python)