2024-05-31 13:27:27 发布
网友
我有一个包含字符串对象的列表。如果字符串对象以W结尾,我想从字符串中删除W。另外,在字符串等于UW的唯一情况下,我不想删除W。
W
UW
我试过这个:
masterAbrevs = [] for subject in masterAbrevs: if subject.endswith("W"): subject = subject[:-1]
打印masterAbrevs之后,我的代码似乎什么也没做。请帮忙。
masterAbrevs
我想你可能会喜欢一个更像Python的回答:
masterAbrevs = ['aksdjfW', 'adW', 'UW', 'tttttW'] masterAbrevs = [abrev[:-1] if (abrev.endswith("W") and abrev != "UW") else abrev for abrev in masterAbrevs]
你需要利用这里的enumerate()。
enumerate()
masterAbrevs = ['aksdjfW', 'adW', 'UW', 'tttttW'] for ind, subject in enumerate(masterAbrevs): if subject.endswith("W") and subject[-2] != 'U': masterAbrevs[ind] = subject[:-1] print masterAbrevs # ['aksdjf', 'ad', 'UW', 'ttttt']
问题是,您从未对列表中的元素进行过更改;您正在对保存从列表返回的元素的变量进行更改。
请改为:
masterAbrevs = ['ASW', 'AS', 'UW'] for i, e in enumerate(masterAbrevs): if (e[-1] == 'W') and (e != 'UW'): masterAbrevs[i] = masterAbrevs[i][:-1] # results in ['AS', 'AS', 'UW']
我想你可能会喜欢一个更像Python的回答:
你需要利用这里的
enumerate()
。问题是,您从未对列表中的元素进行过更改;您正在对保存从列表返回的元素的变量进行更改。
请改为:
相关问题 更多 >
编程相关推荐