#利用字串和列表將兩個通訊錄文字合併為乙個文字
def main():
ftele1=open('tele.txt','rb') #以二進位制開啟不會丟失回車換行等符號
ftele2=open('address.txt','rb')
ftele1.readline()#跳過第一行
ftele2.readline()
lines1 = ftele1.readlines() #儲存成列表,每行為乙個字串
lines2 = ftele2.readlines()
list1_name =
list1_tele =
list2_name =
list2_email =
for line in lines1:#獲取第乙個文字中的姓名和**資訊
elements = line.split() #每一行分割成字串列表存到elements裡
for line in lines2:#獲取第二個文字中的姓名和郵件資訊
elements = line.split()
###開始處理###
lines =
#按索引方式遍歷姓名列表1
for i in range(len(list1_name)):
s= ''
if list1_name[i] in list2_name:
j = list2_name.index(list1_name[i]) #找到姓名列表1對應列表2中的姓名索引位置
s = '\t'.join([list1_name[i], list1_tele[i], list2_email[j]])#join的處理物件為字串列表,只有乙個物件,加,內用,隔開
s += '\n'
else:
s = '\t'.join([list1_name[i], list1_tele[i], str(' ----- ')])
s += '\n'
#處理姓名列表2中剩餘的姓名
for i in range(len(list2_name)):
s= ''
if list2_name[i] not in list1_name:
s = '\t'.join([list2_name[i], str(' ----- '), list2_email[i]])
s += '\n'
ftele3 = open('book.txt', 'w')
ftele3.writelines(lines)
ftele3.close()
ftele1.close()
ftele2.close()
print("the addressbooks are merged!")
if __name__ == "__main__":
main()
檔案:tele
姓名 **號碼
王五 13242345643
張三 12390288389
李四 13287968758
趙六 10384948383
檔案:address
姓名 郵箱
王五 34234234@
李四 24345234@
網銀 41234232@
趙六 werwewe@
合併結果:
姓名 ** 郵箱
王五 34234234@ 13242345643
李四 24345234@ 13287968758
網銀 41234232@ -----
趙六 werwewe@ 10384948383
張三 ----- 12390288389
字典例項 利用字典將兩個通訊錄文字合併為乙個文字
利用字典將兩個通訊錄文字合併為乙個文字 def main ftele1 open d teleaddressbook.txt rb ftele2 open d emailaddressbook.txt rb ftele1.readline 跳過第一行 ftele2.readline lines1 f...
兩組字串去重 兩個列表去重
已知字串a 1,2,3,4,5,6,7,8 已知字串b 1,3,4 獲取他們不相同的部分 當後端需要返回給前端完整的任務列表,任務列表一共有八個,已知完成了三個任務 從資料庫中獲取 如何取得未完成的任務列表 方法一 把總任務列表和已完成的任務列表,放入list的集合中,遍歷總完成的任務列表,依次跟已...
求兩個超長數字字串的和 Python
求兩個超長數字字串的和 python 123 0 333 9 如 12345 67890 分析思路 求 求兩個超長數字字串的和 1 先把兩個字串強制轉換成數字 2 把兩個數字相加即可得到加和 str1 1233333336666666663345 str2 678333366666666666666...