利用字串和列表將兩個通訊錄文字合併為乙個文字

2021-07-30 15:33:28 字數 1943 閱讀 9434

#利用字串和列表將兩個通訊錄文字合併為乙個文字

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...