在str.join中,为什么列表必须总是包含字符串?

时间:2018-07-04 06:38:29

标签: python string python-3.x list join

l=[8,2,3,0,7]
def _sum(given_list) :
   s="+".join(given_list)
   return s
print(_sum(l))

这会产生错误

2 个答案:

答案 0 :(得分:4)

阅读文档:str.join

  

返回一个字符串,该字符串是可迭代的字符串的串联。如果可迭代项中有任何非字符串值(包括字节对象),则会引发 TypeError (类型错误)。元素之间的分隔符是提供此方法的字符串。

并阅读@UltraInstinct need __str__

的精彩评论

答案 1 :(得分:0)

from collections import Counter from itertools import combinations, chain raw_pairs = ['BCH/BTC', 'BCH/ETH', 'DASH/USD', 'BTC/USDT', 'ETH/BTC'] def parse_pair(raw_pair): return raw_pair.split('/') def is_trair(trair_candidate): # assuming that all currencies appear twice means we have a trair currency_counts = Counter(chain.from_iterable(trair_candidate)) return set(currency_counts.values()) == {2} pairs = map(parse_pair, raw_pairs) trair_candidates = combinations(pairs, r=3) # filter the actual trairs from all trair_candidates trairs = filter(is_trair, trair_candidates) print(list(trairs)) 方法连接一个字符串列表,并且您要向其传递一个整数列表。

在将它们传递到str.join之前,应将它们转换为字符串列表。

str.join

这将输出:

l=[8,2,3,0,7]
def _sum(given_list) :
   s="+".join(map(str, given_list))
   return s
print(_sum(l))