首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python列表中的每5个字符串后添加换行符?

如何在python列表中的每5个字符串后添加换行符?
EN

Stack Overflow用户
提问于 2020-05-24 16:44:43
回答 3查看 71关注 0票数 1
代码语言:javascript
复制
listMethods = dir(str)

listMethods[ : ] = [x for x in listMethods if not "__" in x]

listMethods包含字符串类的所有不同方法。我想试着把它组织成五列。

EN

回答 3

Stack Overflow用户

发布于 2020-05-24 17:05:48

只需以5为单位迭代列表,并将每个5作为由空格分隔的单个字符串打印出来:

代码语言:javascript
复制
for i in range(0, len(listMethods), 5):
    print(" ".join(listMethods[i: i+5]))

若要实现更加对齐的格式,可以使用最长方法的格式填充。类似于:

代码语言:javascript
复制
maxlen = max((len(x) for x in listMethods), default=15)
for i in range(0, len(listMethods), 5):
    print(" ".join(f"{method:{maxlen}}" for method in listMethods[i: i+5]))

提供:

代码语言:javascript
复制
capitalize   casefold     center       count        encode      
endswith     expandtabs   find         format       format_map  
index        isalnum      isalpha      isascii      isdecimal   
isdigit      isidentifier islower      isnumeric    isprintable 
isspace      istitle      isupper      join         ljust       
lower        lstrip       maketrans    partition    replace     
rfind        rindex       rjust        rpartition   rsplit      
rstrip       split        splitlines   startswith   strip       
swapcase     title        translate    upper        zfill   
票数 1
EN

Stack Overflow用户

发布于 2020-05-24 16:53:36

尝尝这个。

代码语言:javascript
复制
# listMethods = list('abcdefghijklmnopqrstuvwxyz')
listMethods = [x for x in dir(str) if not x.startswith('__')]
listFinal = []
for i, element in enumerate(listMethods):
    listFinal.append(element)
    if i % 5 == 0:
        listFinal.append('\n')

print(listFinal)

输出

代码语言:javascript
复制
['capitalize', 'casefold', 'center', 'count', 'encode', '\n', 'endswith', 'expandtabs', 'find', 'format', 'format_map', '\n', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', '\n', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', '\n', 'istitle', 'isupper', 'join', 'ljust', 'lower', '\n', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', '\n', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', '\n', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', '\n', 'title', 'translate', 'upper', 'zfill']

要查看结果:

代码语言:javascript
复制
print(', '.join(listFinal).replace('\n, ', '\n'))

# Output
capitalize, casefold, center, count, encode, 
endswith, expandtabs, find, format, format_map, 
index, isalnum, isalpha, isdecimal, isdigit, 
isidentifier, islower, isnumeric, isprintable, isspace, 
istitle, isupper, join, ljust, lower, 
lstrip, maketrans, partition, replace, rfind, 
rindex, rjust, rpartition, rsplit, rstrip, 
split, splitlines, startswith, strip, swapcase, 
title, translate, upper, zfill
票数 0
EN

Stack Overflow用户

发布于 2020-05-24 17:14:48

这可能是在每5个项目后添加一个字符串为'\n‘的列表项目的最简单方法:

代码语言:javascript
复制
for i in range(5, len(listMethods), 6):
    listMethods.insert(i, '\n')

这就是你想要的功能吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61983563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档