Python中str()函数和join()方法在字符串转换上有何区别?


Python中str()函数和join()方法在字符串转换上有何区别?

5 回复

a[‘a’] 是个列表, str 的时候,就是那么打印的

’’.join(a[‘a’]) …

算了我懒得吐槽了… 两个方法都不一样. 为什么你会认为输出一定要一样?


str()和join()虽然都能处理字符串,但完全是两个不同维度的东西。

str()是个类型转换函数,把任意对象转成它的字符串表示。比如str(123)得到"123",str([1,2])得到"[1,2]"。

join()是字符串对象的方法,专门用来拼接可迭代对象里的字符串元素。关键点:它要求所有元素都已经是字符串。

看个典型例子:

# str() 处理非字符串
nums = [1, 2, 3]
print(str(nums))  # 输出: "[1, 2, 3]" - 整个列表转成一个字符串

# join() 拼接字符串
words = ['a', 'b', 'c']
print(''.join(words))  # 输出: "abc" - 拼接列表里的字符串

# 常见错误
# print(''.join(nums))  # 报错!因为nums里是整数不是字符串

# 正确配合使用
print('-'.join(str(x) for x in nums))  # 输出: "1-2-3"

简单说:str()是“转字符串”,join()是“拼字符串”,经常配合着用。

不是一个东西,还有为什么用 a[‘a’]这种怪异的动作。

如果你把字符串当成一个对象,那 join 就是这个对象的一个方法,好像接收的参数是一个可迭代对象。

str 是不同的函数

str(a[‘a’]) 不懂对列表用 str 什么意思

先看书,再提问。
你这问题本身就不及格。

回到顶部