我想这有一个简单的答案,但我没能破解它。假设你有一个URL,需要分为四个部分:
comp1 = 'www.base.com/'
comp2 = list1 # a list of letters, say "AAA", "BBB", "CCC"
comp3 = list2 # another list, but this time dates: '2019/10/21', '2019/10/20', '2019/10/19'
comp4 = "/example.html"
我尝试了多种不同的方式来组合这些,我知道urllib.parse.urljoin
是最好的选择,但它不能超过三个参数:
for i in comp2:
iter1 = urllib.parse.urljoin(comp1, i)
print(iter1) # this pairs the first two components nicely
for j in comp3:
iter2 = urllib.parse.urljoin(j, comp4)
print(iter2) # this just returns '/example.html', and nothing is joined
连接这4个组件的最适合的方式是什么?我试过''.join()
,但只需要一个参数。我要做的不仅仅是三次迭代。在R
中,我只需在paste0()
中猛击我的组件,就可以结束了。你知道吗
偏离你的榜样
你可以这样做:
我怀疑这并不是你想要的,但如果它真的只是把字符串和列表混在一起,那么这就行了:
结果:
www.base.com/AAABBBCCC2019/10/212019/10/202019/10/19/example.html
您可以摆弄
join
中的""
,使其在/
中折腾,或者为列表中的项使用您想要的任何分隔符。也许你想要AAA/BBB
例如。所以你应该改做"/".join([comp2])
。你知道吗只接受一个参数的
join
处理只接受一个list
,但是list
可以由一堆东西组成。祝你好运:)你想使用
''.join()
是对的,但是你误解了这个论点。。。它应该是任何iterable(列表、元组或类似的)。只需将项直接放入列表或元组中,即可动态创建iterable:当然,这假设列表中的每个项本身就是一个字符串元素。如果
comp2
和comp3
已经是列表,那么您可能还需要执行连接以将它们放到您想要的位置:如果您使用的是Python的现代版本(不是python2.x),那么还可以使用
f-strings
很好地格式化字符串:这里还要注意,如果
comp2
和comp3
是列表,则可能需要进行额外的格式化:在这种情况下,请确保在
join
字符串上使用的引号与外部f-string
上的引号不同,或者正确转义。你知道吗相关问题 更多 >
编程相关推荐