在python中使用循环生成variab

2024-10-02 16:30:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以在Python中使用循环来生成10个不同的变量,而不是分别计算每个变量的值吗?我可以想象在C/C++中这样做,其中我可以使用索引值在循环中迭代并生成值。你知道吗

v1=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result1).netloc.encode('utf-8'))

v2=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result2).netloc.encode('utf-8'))

v3=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result3).netloc.encode('utf-8'))

v4=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result4).netloc.encode('utf-8'))

v5=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result5).netloc.encode('utf-8'))

v6=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result6).netloc.encode('utf-8'))

v7=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result7).netloc.encode('utf-8'))

v8=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result8).netloc.encode('utf-8'))

v9=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result9).netloc.encode('utf-8'))

v10=Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result10).netloc.encode('utf-8'))

Tags: namesearchutfv2encodelevenshteinv1urlparse
3条回答

如果将值表示为集合,这将很容易。代码结构反映了数据结构;当您的数据分布在不相关的变量上时,您的代码也是如此。你知道吗

vs = [Levenshtein.jaro_winkler(exhibitor_name, urlparse(search_result).netloc.encode('utf-8'))
      for search_result in search_results]

更具python风格的方法是,要么作为列表:

vals = []
for search_result in search_results: 
    vals.append(Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result).netloc.encode('utf-8')))
# Access via vals[0], vals[1], etc.

或者作为字典:

vals = {}
for search_result in search_results: 
    vals[search_result] = Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result).netloc.encode('utf-8'))
# Access via vals[search_result1], vals[search_result2], etc.

如果你必须对它不好,你可以:

for i in xrange(10):
    search_result = locals()['search_result' + str(i)]
    locals()['v' + str(i)] = Levenshtein.jaro_winkler(exhibitor_name,urlparse(search_result).netloc.encode('utf-8'))
# Accessed via v0, v1, v2, etc.

但我不建议这样做,因为这是非肾盂和更迟钝比上述解决方案。你知道吗

您可以使用如下列表:

lst = []
for search_result in search_results:
    lst.append(
      Levenshtein.jaro_winkler(
          exhibitor_name,
          urlparse(search_results).netloc.encode('utf-8')))

这假设您还使用了一个列表search_results,而不是所有独立的search_resultN变量。你知道吗

相关问题 更多 >