Hướng dẫn python uppercase all keys in dict - python viết hoa tất cả các khóa trong dict

8

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Vì một số lý do, mã của tôi từ chối chuyển đổi thành chữ hoa và tôi không thể hiểu tại sao. Sau đó, tôi đang cố gắng viết từ điển vào một tệp với các giá trị từ điển chữ hoa được nhập vào một loại tệp mẫu.

#!/usr/bin/env python3
import fileinput
from collections import Counter


#take every word from a file and put into dictionary
newDict = {}
dict2 = {}
with open['words.txt', 'r'] as f:
        for line in f:
            k,v = line.strip[].split[' ']
            newDict[k.strip[]] = v.strip[]
print[newDict]
choice = input['Enter 1 for all uppercase keys or 2 for all lowercase, 3 for capitalized case or 0 for unchanged \n']
print["Your choice was " + choice]

if choice == 1:
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
if choice == 2:
    for k,v in newDict.items[]:
        dict2.update[{k.lower[]: v}]


#find keys and replace with word

print[newDict]
with open["tester.txt", "rt"] as fin:
    with open["outwords.txt", "wt"] as fout:
        for line in fin:
            fout.write[line.replace['{PETNAME}', str[newDict['PETNAME:']]]]
            fout.write[line.replace['{ACTIVITY}', str[newDict['ACTIVITY:']]]]

myfile = open["outwords.txt"]
txt = myfile.read[]
print[txt]
myfile.close[]

Hỏi ngày 24 tháng 4 năm 2018 lúc 14:33Apr 24, 2018 at 14:33

1

Trong Python 3 bạn không thể làm điều đó:

for k,v in newDict.items[]:
    newDict.update[{k.upper[]: v.upper[]}]

Bởi vì nó thay đổi từ điển trong khi lặp lại nó và Python không cho phép điều đó [nó không xảy ra với Python 2 vì items[] được sử dụng để trả về một bản sao của các phần tử dưới dạng list]. Bên cạnh đó, ngay cả khi nó hoạt động, nó sẽ giữ các phím cũ [cũng: rất chậm để tạo một từ điển ở mỗi lần lặp ...]

Thay vào đó, hãy xây dựng lại bản quyền của bạn trong một sự hiểu biết chính thống:

newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}

Đã trả lời ngày 24 tháng 4 năm 2018 lúc 14:36Apr 24, 2018 at 14:36

4

Bạn không nên thay đổi các mục từ điển khi bạn lặp lại chúng. Trạng thái tài liệu:

Lặp lại các chế độ xem trong khi thêm hoặc xóa các mục trong từ điển có thể tăng RuntimeError hoặc không lặp lại tất cả các mục.

Một cách để cập nhật từ điển của bạn theo yêu cầu là các giá trị pop và gán lại trong vòng lặp for. Ví dụ:

d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}

for k, v in d.items[]:
    d[k.upper[]] = d.pop[k].upper[]

print[d]

{'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}

Một giải pháp thay thế là một sự hiểu biết từ điển, như được hiển thị bởi @jean-françoisfabre.

Đã trả lời ngày 24 tháng 4 năm 2018 lúc 14:42Apr 24, 2018 at 14:42

JPPJPPjpp

153K32 Huy hiệu vàng260 Huy hiệu bạc319 Huy hiệu Đồng32 gold badges260 silver badges319 bronze badges

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận : {“Gfg” : [“ab”, “cd”], “Best” : [“gh”], “is” : [“kl”]}
    Output : {‘Gfg’: [‘AB’, ‘CD’], ‘Best’: [‘GH’], ‘is’: [‘KL’]}
    Explanation : All value lists strings are converted to upper case.

    Đưa ra từ điển với danh sách giá trị, chuyển đổi tất cả các chuỗi thành trường hợp trên. : {“Gfg” : [“ab”, “cd”, “Ef”]}
    Output : {‘Gfg’: [‘AB’, ‘CD’, “EF”]}
    Explanation : All value lists strings are converted to upper case, already upper case have no effect.

    Đầu vào: {{Gfgg, [[ab ab, cd cd], tốt nhất Cd '],' tốt nhất ': [' gh '],' là ': [' kl ']} Giải thích: Tất cả các chuỗi danh sách giá trị được chuyển đổi thành trường hợp trên.

    Đầu vào: {{Gfgg, [[ab ab, cd cd đến trường hợp trên, trường hợp trên không có hiệu lực.

    Python3

    test_dict =

    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    0
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    1
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    2
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    3
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    4
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    5
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    4
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    7
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    8

    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    9
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    0
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    2
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    222214
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    4
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    5
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    6
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    2
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    8
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    9

    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    0
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    1
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    2
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    3
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    4
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    5

    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    0
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    1items[]9
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    3
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    4list2

    Đầu ra

    Từ điển ban đầu là: {'gfg': ['ab', 'cd', 'ef'], 'tốt nhất': ['gh', 'ij'], 'là': ['kl']} Từ điển Sau khi chuyển đổi {'gfg': ['ab', 'cd', 'ef'], 'tốt nhất': ['gh', 'ij'], 'là': ['kl']}}
    The dictionary after conversion {‘Gfg’: [‘AB’, ‘CD’, ‘EF’], ‘Best’: [‘GH’, ‘IJ’], ‘is’: [‘KL’]}

    Các phím Python Dicts có nhạy cảm không?

    Sự kết hợp của các chức năng trên có thể được sử dụng để giải quyết vấn đề này. Trong đó, chúng tôi thực hiện nhiệm vụ mở rộng logic của trường hợp trên bằng bản đồ [] thay vì danh sách hiểu.

    Python3

    test_dict =

    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    0
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    1
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    2
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    3
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    4
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    5
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    4
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    7
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    8

    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    9
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    0
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    2
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    222214
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    4
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    5
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    6
    for k,v in newDict.items[]:
        newDict.update[{k.upper[]: v.upper[]}]
    
    2
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    8
    newDict = {k.upper[]:v.upper[] for k,v in newDict.items[]}
    
    9

    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    0
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    1
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    2
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    3
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    4
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    5

    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    0
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    1items[]9
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    3
    d = {'abc': 'xyz', 'def': 'uvw', 'ghi': 'rst'}
    
    for k, v in d.items[]:
        d[k.upper[]] = d.pop[k].upper[]
    
    print[d]
    
    {'ABC': 'XYZ', 'DEF': 'UVW', 'GHI': 'RST'}
    
    4list2

    Đầu ra

    Từ điển ban đầu là: {'gfg': ['ab', 'cd', 'ef'], 'tốt nhất': ['gh', 'ij'], 'là': ['kl']} Từ điển Sau khi chuyển đổi {'gfg': ['ab', 'cd', 'ef'], 'tốt nhất': ['gh', 'ij'], 'là': ['kl']}}
    The dictionary after conversion {‘Gfg’: [‘AB’, ‘CD’, ‘EF’], ‘Best’: [‘GH’, ‘IJ’], ‘is’: [‘KL’]}


    Các phím Python Dicts có nhạy cảm không?

    Các khóa từ điển có độ nhạy cảm trường: Từ điển khóa «Từ điển« Python. : Dictionary Key « Dictionary « Python.

    Làm thế nào để bạn viết một từ điển trong Python?

    Chữ thường.Để chuyển đổi một chuỗi thành chữ thường trong Python, hãy sử dụng phương thức [] tích hợp [] của chuỗi.Để chuyển đổi danh sách các chuỗi thành chữ thường, hãy sử dụng một vòng lặp.use the built-in lower[] method of a string. To convert a list of strings to lowercase, use a loop.

    Dict [] làm gì trong Python?

    Hàm Dict [] tạo ra một từ điển.Một từ điển là một bộ sưu tập không được đặt hàng, có thể thay đổi và được lập chỉ mục.creates a dictionary. A dictionary is a collection which is unordered, changeable and indexed.

    Dict có bảo quản trật tự không?

    Đó là một lớp con từ điển được thiết kế đặc biệt để ghi nhớ thứ tự của các mục, được xác định bởi thứ tự chèn của các khóa.Điều này đã thay đổi trong Python 3.6.Lớp Dict-in-in hiện đang giữ các mặt hàng của nó được đặt hàng là tốt.The built-in dict class now keeps its items ordered as well.

    Bài Viết Liên Quan

    Chủ Đề