假设我有一个字符串s = 'BINGO';我想迭代字符串以生成'B I N G O'。我是这么做的:
s = 'BINGO'
'B I N G O'
result = '' for ch in s: result = result + ch + ' ' print(result[:-1]) # to rid of space after O
有没有更有效的方法来解决这个问题?
ctehm74n1#
s = "BINGO" print(" ".join(s))
应该可以。
8yoxcaq72#
s = "BINGO" print(s.replace("", " ")[1: -1])
以下时间
$ python -m timeit -s's = "BINGO"' 's.replace(""," ")[1:-1]' 1000000 loops, best of 3: 0.584 usec per loop $ python -m timeit -s's = "BINGO"' '" ".join(s)' 100000 loops, best of 3: 1.54 usec per loop
bybem2ql3#
一个非常实用的Python方法是使用string join()方法:
join()
str.join(iterable)
Python的官方文档是这样说的:返回一个字符串,该字符串是iterable...中字符串的串联。元素之间的分隔符是提供此方法的字符串。
如何使用
此方法将应用于上面的str,它反映了将用作可迭代项分隔符的字符串。让我们举一些实际的例子!
str
iterable = "BINGO" separator = " " # A whitespace character. # The string to which the method will be applied separator.join(iterable) > 'B I N G O'
实际上,您可以这样做:
iterable = "BINGO" " ".join(iterable) > 'B I N G O'
但是要记住,参数是可迭代的,就像字符串,列表,元组一样,尽管方法返回的是字符串。
iterable = ['B', 'I', 'N', 'G', 'O'] " ".join(iterable) > 'B I N G O'
iterable = ['B', 'I', 'N', 'G', 'O'] "-".join(iterable) > 'B-I-N-G-O'
6jygbczu4#
最有效的方法是获取输入,生成逻辑并运行代码是这样的来制造你自己的空间制造器
need = input("Write a string:- ") result = '' for character in need: result = result + character + ' ' print(result) # to rid of space after O
但是如果你想使用python给予的代码,那么就使用下面的代码
need2 = input("Write a string:- ") print(" ".join(need2))
huwehgph5#
def space_the_chars(string): string = string.upper().replace(' ','') return string.replace('',' ')[2:-2] space_the_chars(“I’m going to be spaced”)
5条答案
按热度按时间ctehm74n1#
应该可以。
8yoxcaq72#
以下时间
bybem2ql3#
巨蟒的方式#
一个非常实用的Python方法是使用string
join()
方法:Python的官方文档是这样说的:
返回一个字符串,该字符串是iterable...中字符串的串联。元素之间的分隔符是提供此方法的字符串。
如何使用
此方法将应用于上面的
str
,它反映了将用作可迭代项分隔符的字符串。让我们举一些实际的例子!
实际上,您可以这样做:
但是要记住,参数是可迭代的,就像字符串,列表,元组一样,尽管方法返回的是字符串。
6jygbczu4#
最有效的方法是获取输入,生成逻辑并运行
代码是这样的来制造你自己的空间制造器
但是如果你想使用python给予的代码,那么就使用下面的代码
huwehgph5#
函数分隔字符串的字符