json取交集 檔案操作 切片 json操作 集合

2021-10-13 03:41:17 字數 4034 閱讀 9933

***************=檔案操作

# f = open('a.txt','r',encoding='utf-8')

# # res = f.read()

# f = open('users2.txt','w',encoding='utf-8')

# # res = f.read()

# f.write('abc')

# f.read()

# f = open('users3.txt','a',encoding='utf-8')

# # res = f.read()

# f.write('abcdef')

# f.read() #not readable

# r read 只能讀不能寫,檔案不存在時會報錯

# w write 檔案不存在時,會幫你建立,但不能讀 報錯 not readable,會清空原來的檔案內容

# f = open('a.txt','r+',encoding='utf-8')

# f.write('bbb') # 追加

# res2 = f.read()

# print(res2) #讀不出來東西

# f = open('a.txt','w+',encoding='utf-8')

# res = f.read()

# print(res)

# f = open('user4.txt','a+',encoding='utf-8')

# res = f.read()

# print(res)

# f.write('abc')

# res2 = f.read()

# print(res2)

# r+ 讀寫模式 檔案不存在時會報錯,可以寫,但是寫的有問題,寫前邊去了

# w+ 寫讀模式 會清空原來的檔案內容,可以讀,但是讀不到東西

# a+ 追加讀模式 能寫能讀,但是讀不到東西

#**********檔案指標

# f = open('users3.txt','a+',encoding='utf-8')

# f.seek(0)

# # f.truncate() #刪除 指標需要放在最前邊 才能清空; 不然就從指標位置開始刪除

# # print(f.read()) #全讀出來了,字串

# print(f.readline()) #讀取一行的內容

# print(f.tell()) # 當前檔案的位置

# # print(f.readlines()) # 全讀出來了 ,list

# f.write('\nabc\n')

# f.seek(0)

# print(f.read())

# f.read() 和 f.readlines() 同時存在的話 哪個排在第二個 哪個就是空的 因為有【檔案指標】這個東西 一行行讀完了,之後再繼續讀就沒有內容了

# 先 realine()一行 ,然後再 read() 的話,read的是 除了第一行之外的東西

# l = ['123\n','abc\n','456\n']

# f.writelines(l) # 把list裡的元素 寫入到檔案裡面

******************************切片

# s = 'abc123456'

# print(s[0:3])

# print(s[:3]) # 冒號前邊數字不寫,說明從第乙個開始取

# l = ['xiaohei',60,70,80]

# print(l[1:4]) # 切片的時候 是顧頭不顧尾的

# print(l[:3]) # 從第乙個到第2個

# print(l[3:]) # 從3取到最後

# print(l[:]) #複製乙個

# nums = list(range(1,21)) #1到20 也是顧頭不顧尾的

# print(nums[0:10]) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# print(nums[0:10:2]) # 第三個引數是步長 [1, 3, 5, 7, 9]

# print(nums[0:10:3]) # [1, 4, 7, 10]

# print(nums[::-1]) # 步長為負數時,代表從右往左取 [20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

# print(nums[-1:-12:-2]) # [20, 18, 16, 14, 12, 10]

# nums.reverse() #可以直接反轉

# print(nums)

*************************====json操作

import json

# 存在檔案裡面的東西 讀出來都是字串

# ------json.dumps 把字典轉成字串

開啟檔案

把字典dumps一下,轉成字串

把字串寫入檔案

# d =

# res = json.dumps(d) #把字典轉成json串,json串是字串

# print(type(res))

# f = open('user4.txt','w')

# f.write(res)

# ------json.loads 把字串轉成字典

1、開啟檔案

2、讀取檔案內容

3、json.laods 把讀到的字串轉成字典

# f = open('user4.txt')

# res = f.read()

# print(res)

# d = json.loads(res) # 把json串 轉成字典

# print(d)

# d =

# res = json.dumps(d,indent=4,ensure_ascii=false)

# f = open('user4.txt','w',encoding='utf-8')

# f.write(res)

# ------load

1、開啟檔案

2、load 自動幫你讀

# f = open('user4.txt',encoding='utf-8')

# d = json.load(f) # 把json串 轉成字典

# print(d)

# -------dump

開啟檔案

dump寫入

d = 集合也用大括號, key-value的是字典 單個值的是set

s = set() #定義乙個空集合

s1 =

s2 =

#交集jiaoji = s1.intersection(s2)

print(jiaoji)

stu1 = ['zhz','wang','li','zhao'] # 會技能1的

stu2 = ['zhz','wang','li','liu'] # 會技能2的

stuset1 = set(stu1)

stuset2 = set(stu2)

print(stuset1.intersection(stuset2)) # 取交集

print(stuset1 & stuset2) # 這樣也可以取交集

#並集bingji = stuset1.union(stuset2)

bingji2 = stuset1 | stuset2

print(bingji) #

print(bingji2)

#差集print(stuset1 - stuset2) # a裡面有 b裡面沒有的 zhao

print(stuset2 - stuset1) # liu

#對稱差集

print(stuset1.symmetric_difference(stuset2)) #

print(stuset1^stuset2) #

#加元素

s1.add('abc')

s1.add(9)

s1.remove('abc')

print('abc' in s1)

JS陣列取交集 並集

如果陣列中僅是字串和數值 var a 1 2,3 b 2 3,4 5 交集 2,3 var intersection a.filter item b.indexof item 1 並集 1,2,3,4,5 var union a.concat b.filter item a.indexof item...

json檔案操作

1 把字典或list轉換成字串方法 json.dumps with open b w encoding utf 8 as f json new json.dumps jsongeshi 字典轉換為字串,write寫支援字串,不支援字典及list格式 f.write json new 2 把字串轉換成...

JS兩個陣列取交集filter

關於filter的解釋,菜鳥教程這樣寫道 filter 方法建立乙個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。經常用來寫兩個陣列取交集的演算法 var arr1 1,5,6,4,2 var arr2 2,5,3,4 var arr3 arr1.filter function n...