从字符串中删除

2024-05-23 22:09:34 发布

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

with open("p022_names.txt","r") as f:
    for line in f:
        name=[str(v) for v in line.split(",")]
name.sort()
print(name)
tot=0
for i in range(len(name)):
    tot=tot+sum(ord(letter)-64 for letter in name[i])
print(tot)

在从文件中读取数据的同时,它还在名称中添加“and”。 如果名称为COLIN,则会在列表名称中保存为“COLIN”。 我该怎么修? 输入文件

"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRACY","EDNA","TIFFANY","CARMEN","ROSA","CINDY","GRACE","WENDY","VICTORIA",

输出 ['“玛丽”','“…”,'“…”,'“…”,…]


Tags: nameintxt名称fornamesaswith
3条回答

如果要从字符串中删除这些字符,可以执行以下操作:

s = s.replace("\"","")

这将用空字符串替换"的所有实例

如果您只想在字符串的末端删除它们,可以这样做

s = s.strip("\"")

如果要确保每端只删除一个引号,可以执行以下操作:

if s.startswith("\""):
    s = s[1:]
elif s.endswith("\""):
    s = s[:-1]

如果您知道字符串将始终包含引号,则可以将其简化为:

s = s[1:-1]

然而,这个文件看起来是一个csv文件,使用csv库解析这些文件要好得多

这是我的解决办法。它支持以逗号分隔的行中的多个名称,也支持文件中的多行

names = []
with open('p022_names.txt') as f:
    for line in f:
        names.extend(v.lower().strip('"').strip("'") for v in line.split(","))

names.sort()

for name in names:
    tot = sum(ord(letter)-96 for letter in name)
    print("{0}: {1}".format(name, tot))

您可以通过以下方式从Python中的字符串中删除第一个和最后一个字符:

name = "'COLIN'"
print(name[1:-1])

这将打印 COLIN 而不是 'COLIN'

相关问题 更多 >