python是否有更好的方法来拆分字符串而不是转换为列表?

时间:2013-07-24 20:53:59

标签: python python-2.7

我正在测试一组web apis,使用python,这是一种我仍在学习的语言。我正在接受一个字符串,一个经销商的名字,并在随机数字后切断结束。然后我添加一个字符(通配符)到字符串的结尾。然后将该修改后的字符串传递给api,该API搜索经销商的名称,并且可以包括通配符。我有下面的代码,但似乎很长。是否有更清洁的外观或更多的pythonic方式来解决这个问题?可能是一种方法,无需从字符串转换为列表,返回字符串?

split_name = list(name)     #turns name string into list
rand = random.randint(6,(len(split_name)-1))    #generates random number
split_name[rand:len(split_name)] = []       #breaks of end part of name list
srch_name = ''.join(split_name)     #stringifies list
#Send request
rqst = requests.get(name_srch %(key, (srch_name + '*'))) #this adds * and sends the request

在脚本中早先将名称定义为某些字符串,例如“Dave and Bills equipment sales and service,INC” 我应该注意到我使用的是python 2.7

1 个答案:

答案 0 :(得分:2)

是的,使用切片从字符串中选择一个随机数字的字符,不需要先将其拆分成一个列表:

rand = random.randint(6, len(split_name) - 1)
search_name = name[rand:] + '*'
rqst = requests.get(name_srch % (key, search_name))

字符串也是序列,支持直接切片,无需先将其转换为列表。在这种情况下,您可以省略端点,将默认值切换到字符串的末尾。