Tôi có một từ khóa ánh xạ từ điển để lặp lại từ khóa, nhưng tôi chỉ muốn một danh sách các từ riêng biệt nên tôi muốn đếm số từ khóa. Có cách nào để đếm số lượng từ khóa hay có cách khác tôi nên tìm kiếm các từ riêng biệt?
Flim
Huy hiệu vàng 124K4040 gold badges237 silver badges252 bronze badges
hỏi ngày 6 tháng 2 năm 2010 lúc 7:37Feb 6, 2010 at 7:37
1
len[yourdict.keys[]]
hoặc công bằng
len[yourdict]
Nếu bạn thích đếm các từ duy nhất trong tệp, bạn chỉ có thể sử dụng
len[yourdict]
1 và thíchlen[set[open[yourdictfile].read[].split[]]]
Đã trả lời ngày 6 tháng 2 năm 2010 lúc 7:41Feb 6, 2010 at 7:41
BạnYOU
Huy hiệu vàng 117K3232 gold badges184 silver badges216 bronze badges
3
Số lượng các từ riêng biệt [nghĩa là số lượng các mục trong từ điển] có thể được tìm thấy bằng cách sử dụng hàm
len[yourdict]
2.> a = {'foo':42, 'bar':69}
> len[a]
2
Để có được tất cả các từ riêng biệt [nghĩa là các khóa], hãy sử dụng phương thức
len[yourdict]
3.> list[a.keys[]]
['foo', 'bar']
Đã trả lời ngày 6 tháng 2 năm 2010 lúc 7:40Feb 6, 2010 at 7:40
Kennytmkennytmkennytm
500K101 Huy hiệu vàng1064 Huy hiệu bạc995 Huy hiệu Đồng101 gold badges1064 silver badges995 bronze badges
0
Gọi
len[yourdict]
2 trực tiếp trên từ điển của bạn hoạt động và nhanh hơn so với việc xây dựng một trình lặp, len[yourdict]
5 và gọi len[yourdict]
2 trên đó, nhưng tốc độ của một trong hai sẽ không đáng kể so với bất cứ điều gì khác mà chương trình của bạn đang làm.d = {x: x**2 for x in range[1000]}
len[d]
# 1000
len[d.keys[]]
# 1000
%timeit len[d]
# 41.9 ns ± 0.244 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
%timeit len[d.keys[]]
# 83.3 ns ± 0.41 ns per loop [mean ± std. dev. of 7 runs, 10000000 loops each]
Đã trả lời ngày 7 tháng 3 năm 2019 lúc 14:25Mar 7, 2019 at 14:25
Nếu câu hỏi là về việc đếm số lượng từ khóa thì sẽ đề xuất một cái gì đó như
def countoccurrences[store, value]:
try:
store[value] = store[value] + 1
except KeyError as e:
store[value] = 1
return
Trong chức năng chính có một cái gì đó lặp qua dữ liệu và chuyển các giá trị cho chức năng Countoccurences
if __name__ == "__main__":
store = {}
list = ['a', 'a', 'b', 'c', 'c']
for data in list:
countoccurrences[store, data]
for k, v in store.iteritems[]:
print "Key " + k + " has occurred " + str[v] + " times"
Mã đầu ra
Key a has occurred 2 times
Key c has occurred 2 times
Key b has occurred 1 times
Đã trả lời ngày 25 tháng 1 năm 2018 lúc 22:00Jan 25, 2018 at 22:00
DaviddavidDavid
8078 Huy hiệu bạc7 Huy hiệu Đồng8 silver badges7 bronze badges
1
Một số sửa đổi đã được thực hiện trên câu trả lời được đăng dưới Waterwaterkremlin để làm cho nó bằng chứng Python3. Một kết quả đáng ngạc nhiên dưới đây là câu trả lời.
Thông số kỹ thuật hệ thống:
- Python = 3.7.4,
- Conda = 4.8.0
- 3,6GHz, 8 lõi, 16GB.
import timeit
d = {x: x**2 for x in range[1000]}
#print [d]
print [len[d]]
# 1000
print [len[d.keys[]]]
# 1000
print [timeit.timeit['len[{x: x**2 for x in range[1000]}]', number=100000]] # 1
print [timeit.timeit['len[{x: x**2 for x in range[1000]}.keys[]]', number=100000]] # 2
Result:
1] = 37.0100378
2] = 37.002148899999995
Vì vậy, có vẻ như
len[yourdict]
7 hiện đang nhanh hơn chỉ sử dụng len[yourdict]
2.
Đã trả lời ngày 30 tháng 12 năm 2019 lúc 21:49Dec 30, 2019 at 21:49
ZF007ZF007ZF007
3.6468 Huy hiệu vàng32 Huy hiệu bạc48 Huy hiệu đồng8 gold badges32 silver badges48 bronze badges
Để đếm số lượng từ khóa trong từ điển:
len[yourdict]
0
MSOLER
2.9102 Huy hiệu vàng17 Huy hiệu bạc 30 Huy hiệu Đồng2 gold badges17 silver badges30 bronze badges
Đã trả lời ngày 26 tháng 2 năm 2021 lúc 5:50Feb 26, 2021 at 5:50