.join() 方法到底起什么作用?
- 2024-12-30 08:42:00
- admin 原创
- 99
问题描述:
我对 Python 还很陌生,并且完全搞不清楚.join()
我读过的哪种方法是连接字符串的首选方法。
我试过:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
并得到如下结果:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
为什么会这样? 不是应该595
自动附加吗?
解决方案 1:
仔细查看你的输出:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
^ ^ ^
我已突出显示原始字符串中的“5”、“9”、“5”。Pythonjoin()
方法是一种字符串方法,它获取要与字符串连接的事物列表。一个更简单的例子可能有助于解释:
>>> ",".join(["a", "b", "c"])
'a,b,c'
在给定列表的每个元素之间插入“,” 。 在您的例子中,您的“列表”是字符串表示“595”,它被视为列表 [“5”, “9”, “5”]。
看来您正在寻找+
:
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring() + strid
解决方案 2:
join
以可迭代对象作为参数。通常是一个列表。你的情况的问题是字符串本身是可迭代的,依次给出每个字符。你的代码分解如下:
"wlfgALGbXOahekxSs".join("595")
其作用与此相同:
"wlfgALGbXOahekxSs".join(["5", "9", "5"])
从而产生你的字符串:
"5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5"
字符串作为可迭代对象是 Python 最令人困惑的初始问题之一。
解决方案 3:
要附加字符串,只需将其与+
符号连接起来即可。
例如
>>> a = "Hello, "
>>> b = "world"
>>> str = a + b
>>> print str
Hello, world
join
使用分隔符将字符串连接在一起。分隔符就是你在 之前放置的内容join
。例如
>>> "-".join([a,b])
'Hello, -world'
Join 将字符串列表作为参数。
解决方案 4:
join() 用于连接所有列表元素。如果只连接两个字符串,则使用“+”更有意义:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring() + strid
解决方案 5:
为了进一步阐述其他人的说法,如果您想使用 join 来简单地连接两个字符串,您可以这样做:
strid = repr(595)
print ''.join([array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring(), strid])
解决方案 6:
这里+
有一个很好的解释,说明为什么连接大量字符串的成本很高
加法运算符是连接两个Python 字符串的完美解决方案。但如果您继续添加两个以上的字符串(n > 25),您可能需要考虑其他方法。
''.join([a, b, c])
trick 是一种性能优化。
解决方案 7:
在提供此信息作为输入时,
li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
s = ";".join(li)
print(s)
Python 返回此内容作为输出:
'server=mpilgrim;uid=sa;database=master;pwd=secret'
解决方案 8:
list = ["my", "name", "is", "kourosh"]
" ".join(list)
如果这是一个输入,使用 JOIN 方法,我们可以添加单词之间的距离,并将列表转换为字符串。
这是 Python 输出
'my name is kourosh'
解决方案 9:
“”.join可用于将列表中的字符串复制到变量
>>> myList = list("Hello World")
>>> myString = "".join(myList)
>>> print(myList)
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>>> print(myString)
Hello World
解决方案 10:
string : str = "".join(["a", "b", "c"])
输出:“a,b,c”
string : str = "-".join(["a", "b", "c"])
输出:“abc”
简单来说,此函数用于将列表转换为字符串。此函数接受两个参数:元素列表和分隔列表元素的字符;默认情况下,该字符为引号“,” 。