Python中如何从列表索引3取到索引8?切片输出格式问题求助
解决列表切片输出为列表格式的问题
你的问题出在直接将切片得到的列表插入到f-string中,Python会默认输出列表的原生字符串格式(带方括号和引号)。要转换成自然的逗号分隔文本,你可以用str.join()方法把列表元素拼接成连贯的字符串。
修改后的代码
familia = input('Digite o nome da sua família! Seus pais, seus irmãos e avós: ') parentes = familia.split(' ') # 统一处理名字格式:去除多余逗号+首字母大写 def formatar_nome(nome): return nome.strip(',').capitalize() print(f'o seu nome é {formatar_nome(parentes[0])}.') print(f'o nome do seu pai é {formatar_nome(parentes[1])}.') print(f'o nome da sua mãe é {formatar_nome(parentes[2])}.') # 用join拼接切片后的名字列表 irmãos = ', '.join(formatar_nome(nome) for nome in parentes[3:8]) print(f'o nome dos seus irmãos são {irmãos}.') avos_paternos = ', '.join(formatar_nome(nome) for nome in parentes[8:10]) print(f'o nome dos seus avós paternos é {avos_paternos}.') avos_maternos = ', '.join(formatar_nome(nome) for nome in parentes[10:12]) print(f'o nome dos seus avós maternos é {avos_maternos}.') quantos_sao = len(parentes) print(f'A sua família tem {quantos_sao} pessoas!')
核心说明
str.join()的作用:', '.join(迭代对象)会把迭代对象里的每个字符串用,连接成一个完整的文本,彻底替代列表的原生输出格式。- 处理输入里的逗号:从你的示例输出看,输入的名字后带了多余逗号(比如
valentina,),用strip(',')可以清除每个名字首尾的逗号,让输出更整洁。 - 复用格式化逻辑:定义
formatar_nome函数避免重复写capitalize().strip(','),让代码更简洁易维护。
修改后的输出示例
o seu nome é Gean. o nome do seu pai é Enio. o nome da sua mãe é Denise. o nome dos seus irmãos são Valentina, Anthony, Rafael, Caroline, Gustavo. o nome dos seus avós paternos é Ademar, Gisela. o nome dos seus avós maternos é Leonilda, Amazir. A sua família tem 12 pessoas!
内容的提问来源于stack exchange,提问作者Idgar
相关产品推荐
相关产品推荐

