gpt4 book ai didi

python - python中的列表识别中的列表

转载 作者:行者123 更新时间:2023-12-01 05:05:59 25 4
gpt4 key购买 nike

我编写了这个简单的代码来实现列表中的成员是否是列表本身,如果是则打印成员。我很想知道这是否是正确的方法:

listt = ['spam!', 1, ['B', 'R', 'P'], [1 , 2, 3]]
leng= range(len(listt))

def listPrint(listt, leng):
for i in leng:

print "List member",i,":"
list1 = listt[i]
print listt[i]


if isinstance(listt[i], list):
leng2 = range(len(listt[i]))
print 'and the members are:'
for e in leng2:
print list1[e], '\n'

else:
print '\n'

listPrint(listt,leng)

最佳答案

这是一个更简洁的版本,带有一些内嵌注释:

def list_print(lst): # PEP-8 function name
"""Print the list, including sub-lists, item by item.""" # docstring
for index, item in enumerate(lst): # use enumerate to get item and index
print "List member {0}: ".format(index) # use str.format to create output
print repr(item) # repr gives e.g. quotes around strings
if isinstance(item, list):
print "and the members are:"
for subitem in item: # iterate directly over list
print repr(subitem)
print "" # blank line between items

一些注意事项:

  • Python 有 an official style guide ,您应该阅读并至少考虑遵循;
  • 包含文档,特别是当您的函数做了一些令人惊讶的事情时(例如期望 leng 是一个范围,而不仅仅是整数长度);
  • Python 包含大量用于迭代事物的功能,for i in range(len(...))很少是正确的答案:
    • enumerate , zip 和普通的旧for x in y更容易阅读和使用;
    • 至少,你应该搬家range(len(listt)) 在函数内部,不要传递可以从同一对象获取的两条信息;和
  • 使用 str.format 比将多个参数传递给 print 更简洁、更 Pythonic .

使用中:

>>> list_print(['spam!', 1, ['B', 'R', 'P'], [1 , 2, 3]])
List member 0:
'spam!'

List member 1:
1

List member 2:
['B', 'R', 'P']
and the members are:
'B'
'R'
'P'

List member 3:
[1, 2, 3]
and the members are:
1
2
3

关于python - python中的列表识别中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25042771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com