我是Python新手,爲了簡單的任務我一直在玩它。我有一堆需要以複雜方式操作的CSV,但爲了學習Python,我將其分解爲更小的任務。有沒有讓這種邏輯更優雅的Pythonic方法?
現在,給定一個字符串列表,我想刪除字符串中任何名字的用戶定義的標題前綴。任何包含名稱的字符串將只包含名稱,有或沒有標題前綴。我有以下幾點,它的工作原理,但它感覺不必要的複雜。是否有更多的Pythonic方法來做到這一點?謝謝!
# Return new list without title prefixes for strings in a list of strings.
def strip_titles(line, title_prefixes):
new_csv_line = []
for item in line:
for title_prefix in title_prefixes:
if item.startswith(title_prefix):
new_csv_line.append(item[len(title_prefix)+1:])
break
else:
if title_prefix == title_prefixes[len(title_prefixes)-1]:
new_csv_line.append(item)
else:
continue
return new_csv_line
if __name__ == "__main__":
test_csv_line = ['Mr. Richard Stallman', 'I like cake', 'Mrs. Margaret Thatcher', 'Jean-Claude Van Damme']
test_prefixes = ['Mr.', 'Ms.', 'Mrs.']
print strip_titles(test_csv_line, test_prefixes)
「Jane Doe女士」和「Betty Bloggs夫人」以及「Fred Nerk先生」,還有很多書呆子[縮寫詞,縮略詞]和按鍵節儉的民謠和女士憎惡的民謠。 「和」希爾德加德希格斯小姐「? – 2010-09-24 02:12:21
@John謝天謝地,這不是一個問題,因爲數據來自另一個來源,併爲此提供了一致的方案。 – bsamek 2010-09-24 02:22:23
「一致的數據源」?我將在「Famous Last Words」下提交該文件:-) – 2010-09-24 03:13:31