让我们分配两个变量:
>>> a_id = 'c99faf24275d476d84e0c8f0ad953582'
>>> u_id = '59958a11a6ad4d8b39707a70'
Run Code Online (Sandbox Code Playgroud)
正确输出:
>>> a_id+u_id
'c99faf24275d476d84e0c8f0ad95358259958a11a6ad4d8b39707a70'
Run Code Online (Sandbox Code Playgroud)
输出错误:
>>> str.join(a_id,u_id)
'5c99faf24275d476d84e0c8f0ad9535829c99faf24275d476d84e0c8f0ad9535829c99faf24275d476d84e0c8f0ad9535825c99faf24275d476d84e0c8f0ad9535828c99faf24275d476d84e0c8f0ad953582ac99faf24275d476d84e0c8f0ad9535821c99faf24275d476d84e0c8f0ad9535821c99faf24275d476d84e0c8f0ad953582ac99faf24275d476d84e0c8f0ad9535826c99faf24275d476d84e0c8f0ad953582ac99faf24275d476d84e0c8f0ad953582dc99faf24275d476d84e0c8f0ad9535824c99faf24275d476d84e0c8f0ad953582dc99faf24275d476d84e0c8f0ad9535828c99faf24275d476d84e0c8f0ad953582bc99faf24275d476d84e0c8f0ad9535823c99faf24275d476d84e0c8f0ad9535829c99faf24275d476d84e0c8f0ad9535827c99faf24275d476d84e0c8f0ad9535820c99faf24275d476d84e0c8f0ad9535827c99faf24275d476d84e0c8f0ad953582ac99faf24275d476d84e0c8f0ad9535827c99faf24275d476d84e0c8f0ad9535820'
Run Code Online (Sandbox Code Playgroud)
现在考虑这种情况,输出现在是正确的:
>>> a="asdf"
>>> b="asdfsdfsd"
>>> str.join(a,b)
'aasdfsasdfdasdffasdfsasdfdasdffasdfsasdfd'
Run Code Online (Sandbox Code Playgroud)
确认示例中所有变量的类型:
>>> type(a)
<class 'str'>
>>> type(a_id)
<class 'str'>
>>> type(u_id)
<class 'str'>
Run Code Online (Sandbox Code Playgroud)
编辑
我刚刚意识到输出中的第二个案例并不完全符合我的预期.我以错误的方式使用join方法.
str.join(a, b)相当于a.join(b),提供a了一个str对象并且b是一个可迭代的.字符串总是可迭代的,因为当你在字符串上迭代时,你将迭代它中的每个字符.
这基本上是"插入(作为可迭代的)a每个元素之间的副本b",因此如果a和b都是字符串,则将一个副本a插入到每对字母中b.例如:
>>> str.join(".", "123456")
'1.2.3.4.5.6'
Run Code Online (Sandbox Code Playgroud)
如果你只想连接两个字符串,+就足够了,不是join:
>>> "." + "123456"
'.123456'
Run Code Online (Sandbox Code Playgroud)
如果你真的想要join,把字符串放在一个列表中,并使用一个空字符串作为"分隔符":
>>> str.join('', ['123', '456', '7890'])
'1234567890'
>>> ''.join(['123', '456', '7890'])
'1234567890'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |