使用 Python 方式打印列表项

2024-12-25 08:51:00
admin
原创
106
摘要:问题描述:我想知道是否有比这更好的方法来打印 Python 列表中的所有对象:myList = [Person("Foo"), Person("Bar")] print(" ".join(map(str, myList))) Foo Bar 我读到这...

问题描述:

我想知道是否有比这更好的方法来打印 Python 列表中的所有对象:

myList = [Person("Foo"), Person("Bar")]
print("
".join(map(str, myList)))
Foo
Bar

我读到这种方式确实不太好:

myList = [Person("Foo"), Person("Bar")]
for p in myList:
    print(p)

有没有类似的东西:

print(p) for p in myList

如果不是,我的问题是...为什么?如果我们可以使用完整列表来做这种事情,为什么不将其作为列表外的简单语句呢?


解决方案 1:

假设你正在使用 Python 3:

print(*myList, sep='
')

这是一种解包。详细信息请参阅 Python 教程:解包参数列表

您可以使用 在 Python 2 上获得相同的行为from __future__ import print_function

使用 Python 2 上的 print 语句时,您将需要某种迭代。关于您关于print(p) for p in myList不起作用的问题,您可以使用以下命令,它执行相同的操作并且仍然很简单:

for p in myList:
    print p

对于使用的解决方案`'
'.join(),我更喜欢列表推导和生成器,map()`因此我可能会使用以下命令:

print '
'.join(str(p) for p in myList) 

解决方案 2:

我一直用这个:

l = [1,2,3,7] 
print "".join([str(x) for x in l])

解决方案 3:

[print(a) for a in list]虽然它会打印出所有的项目,但最后会给出一堆 None 类型

解决方案 4:

对于 Python 2.*:

如果为 Person 类重载函数 __str__(),则可以省略 map(str, ...) 部分。另一种方法是创建一个函数,就像您编写的那样:

def write_list(lst):
    for item in lst:
        print str(item) 

...

write_list(MyList)

Python 3.* 中 print() 函数有参数sep。请查看文档。

解决方案 5:

扩展@lucasg 的答案(受到收到的评论的启发):

要获取格式化的列表输出,您可以执行以下操作:

l = [1,2,5]
print ", ".join('%02d'%x for x in l)

01, 02, 05

现在", "提供分隔符(仅在项目之间,而不是在末尾)和格式化字符串,'02d'并为%x每个项目提供一个格式化的字符串x- 在本例中,格式化为两位数的整数,左边用零填充。

解决方案 6:

为了显示每个内容,我使用:

mylist = ['foo', 'bar']
indexval = 0
for i in range(len(mylist)):     
    print(mylist[indexval])
    indexval += 1

在函数中使用示例:

def showAll(listname, startat):
    indexval = startat
    try:
        for i in range(len(mylist)):
            print(mylist[indexval])
            indexval = indexval + 1
    except IndexError:
        print('That index value you gave is out of range.')

解决方案 7:

使用单行代码打印给定列表的每个元素

 for i in result: print(i)

解决方案 8:

您可以尝试这样做:这也会将其打印为字符串

print(''.join([p for p in myList]))

或者如果你想让它每次打印东西时都打印一个换行符

print(''.join([p+'
' for p in myList]))

解决方案 9:

我认为如果你只想查看列表中的内容,这是最方便的:

myList = ['foo', 'bar']
print('myList is %s' % myList)

简单,易读,可与格式字符串一起使用。

解决方案 10:

我最近制作了一个密码生成器,尽管我对 Python 很陌生,但我还是将其作为一种在列表中显示所有项目的方法(进行了一些小的编辑以满足您的需要...

x = 0
up = 0
passwordText = ""
password = []
userInput = int(input("Enter how many characters you want your password to be: "))
print("


") # spacing

while x <= (userInput - 1): #loops as many times as the user inputs above
    password.extend([choice(groups.characters)]) #adds random character from groups file that has all lower/uppercase letters and all numbers
    x = x+1 #adds 1 to x w/o using x ++1 as I get many errors w/ that
    passwordText = passwordText + password[up]
    up = up+1 # same as x increase


print(passwordText)

就像我说的,我对 Python 很陌生,我确信这对专家来说太笨重了,但我在这里只是想举另一个例子

解决方案 11:

OP 的问题是:是否存在类似以下的情况,如果不存在,那么为什么

print(p) for p in myList # doesn't work, OP's intuition

答案是,它确实存在,即:

[p for p in myList] #works perfectly

基本上,使用[]列表理解并摆脱print避免打印None。要了解为什么print打印,None请参阅此

解决方案 12:

您还可以使用 len() 函数并确定列表的长度以打印元素,如下例所示:

sample_list = ['Python', 'is', 'Easy']

for i in range(0, len(sample_list)):

      print(sample_list[i])

参考:https ://favtutor.com/blogs/print-list-python

解决方案 13:

假设您对打印列表 [1,2,3] 没有异议,那么 Python3 中的一种简单方法是:

mylist=[1,2,3,'lorem','ipsum','dolor','sit','amet']

print(f"There are {len(mylist):d} items in this lorem list: {mylist}")

运行该命令会产生以下输出:

此 lorem 列表中有 8 项:[1, 2, 3, 'lorem', 'ipsum', 'dolor', 'sit', 'amet']

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1344  
  IPD(Integrated Product Development)流程是一套先进的产品开发管理体系,旨在通过整合跨部门资源,实现产品的高效开发与交付。在IPD流程中,确保项目按时交付是至关重要的,它直接关系到企业的市场竞争力和客户满意度。以下将从多个关键方面探讨如何在IPD流程阶段确保项目按时交付。精准的项目规划项...
IPD流程分为几个阶段   0  
  IPD(Integrated Product Development)流程是一套先进的产品开发管理体系,旨在缩短产品上市时间、提高产品质量、降低成本并增强企业的市场竞争力。深入理解IPD流程阶段的关键要素,对于企业成功实施IPD,实现产品开发的高效运作至关重要。IPD流程的概念与重要性IPD流程强调将产品开发视为一个整...
IPD测试流程   0  
  IPD(Integrated Product Development)产品开发流程是一套先进的、旨在提高产品开发效率与质量的管理体系。在这个体系中,评审环节起着至关重要的作用,它们如同关卡,确保产品在各个阶段都朝着正确的方向前进,符合市场需求和企业战略。其中有四个评审环节尤为关键,它们分别在不同阶段对产品进行全面审视,...
研发IPD流程   0  
  IPD(Integrated Product Development)研发管理体系是一套先进的、面向市场和客户的产品开发管理理念、模式和方法,旨在缩短产品上市时间、降低成本、提高产品质量,增强企业的核心竞争力。在IPD研发管理体系中,有五个关键流程起着至关重要的作用,它们相互关联、相互影响,共同构成了一个高效、协同的产...
IPD流程培训   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用