Hướng dẫn python get value from tuple by key - python nhận giá trị từ tuple bằng khóa

Có thể nhận được giá trị từ tuple không:

TUPLE = (
    ('P', 'Shtg1'),
    ('R', u'Shtg2'),
    ('D', 'Shtg3'),
)

bằng cách gọi khóa str như P

Python nói rằng chỉ có thể sử dụng int cho loại 'truy vấn' này

Tôi không thể sử dụng vòng lặp (quá nhiều trên đầu ...)

Cảm ơn bạn!

hỏi ngày 4 tháng 1 năm 2012 lúc 17:30Jan 4, 2012 at 17:30

Hướng dẫn python get value from tuple by key - python nhận giá trị từ tuple bằng khóa

2

Cấu trúc dữ liệu chính tắc cho loại truy vấn này là một từ điển:

In [1]: t = (
   ...:     ('P', 'Shtg1'),
   ...:     ('R', u'Shtg2'),
   ...:     ('D', 'Shtg3'),
   ...: )

In [2]: d = dict(t)

In [3]: d['P']
Out[3]: 'Shtg1'

Nếu bạn sử dụng một tuple, không có cách nào để tránh lặp (rõ ràng hoặc ẩn).

Đã trả lời ngày 4 tháng 1 năm 2012 lúc 17:32Jan 4, 2012 at 17:32

NPENPENPE

472K104 Huy hiệu vàng923 Huy hiệu bạc998 Huy hiệu Đồng104 gold badges923 silver badges998 bronze badges

0

dict(TUPLE)[key] sẽ làm những gì bạn muốn.

Có một chút bộ nhớ trên đầu, nhưng nó nhanh.

Đã trả lời ngày 14 tháng 4 năm 2014 lúc 12:17Apr 14, 2014 at 12:17

Koed00Koed00Koed00

6217 Huy hiệu bạc7 Huy hiệu đồng7 silver badges7 bronze badges

1

Bạn muốn sử dụng một từ điển thay thế.

d = { 'P': 'Shtg1', 'R': u'Shtg2', 'D':'Shtg3' }

Và sau đó bạn có thể truy cập khóa như vậy:

d['P'] # Gets 'Shtg1'

Đã trả lời ngày 4 tháng 1 năm 2012 lúc 17:32Jan 4, 2012 at 17:32

NPENPEMakoto

472K104 Huy hiệu vàng923 Huy hiệu bạc998 Huy hiệu Đồng27 gold badges185 silver badges222 bronze badges

dict(TUPLE)[key] sẽ làm những gì bạn muốn.

Có một chút bộ nhớ trên đầu, nhưng nó nhanh.

Đã trả lời ngày 14 tháng 4 năm 2014 lúc 12:17

6217 Huy hiệu bạc7 Huy hiệu đồng

Bạn muốn sử dụng một từ điển thay thế.Jan 4, 2012 at 17:35

Và sau đó bạn có thể truy cập khóa như vậy:Eduardo Ivanec

Makotomakoto2 gold badges37 silver badges42 bronze badges

102K27 Huy hiệu vàng185 Huy hiệu bạc222 Huy hiệu đồng

>>> from collections import namedtuple
>>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
>>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
>>> TUPLE
MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')

>>> TUPLE.P
'Shtg1'

>>> TUPLE.R
u'Shtg2'

>>> TUPLE.D
'Shtg3'

>>> TUPLE[0:]
('Shtg1', u'Shtg2', 'Shtg3')

Thay vì chuyển sang từ điển đầy đủ, bạn có thể thử sử dụng một bộ tuple có tên thay thế. Thêm thông tin trong câu hỏi này.

Về cơ bản, bạn xác định các thẻ cho các trường và sau đó có thể gọi chúng là giá trị.tag1, v.v.Jan 21, 2014 at 14:29

cod3monk3ycod3monk3ycod3monk3y

Trích dẫn các tài liệu:5 gold badges38 silver badges52 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
    Method #1 : Using List comprehension 
    This task can be performed using List comprehension. In this, we iterate through each records and test it’s value list for K. If found we return that key.
     

    Python3

    test_list

    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    1
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    2
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    3
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    4
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    5
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    6
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    5
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    8__19

    d['P'] # Gets 'Shtg1'
    
    6
    d['P'] # Gets 'Shtg1'
    
    7
    d['P'] # Gets 'Shtg1'
    
    8
    d['P'] # Gets 'Shtg1'
    
    9
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    0
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    1

    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    2
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    8

    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    5
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    04___

    d['P'] # Gets 'Shtg1'
    
    6
    d['P'] # Gets 'Shtg1'
    
    7
    The original list is : [('Gfg', [1, 3, 4]), ('is', [5, 8, 10]), ('best', [11, 9, 2])]
    The required key of list values : Gfg
    2
    d['P'] # Gets 'Shtg1'
    
    9
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    21
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    8__

    Đầu ra: & nbsp;

    The original list is : [('Gfg', [1, 3, 4]), ('is', [5, 8, 10]), ('best', [11, 9, 2])]
    The required key of list values : ['Gfg']

    Làm thế nào để bạn trích xuất các giá trị tuple?
    Method #2 : Using filter() + lambda 
    The combination of above functions can also be used to perform this task. In this, filter() is used to check for existence in list and extract the required key with help of lambda.
     

    Python3

    test_list

    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    1
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    2
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    3
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    4
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    5
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    6
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    5
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    8__19

    d['P'] # Gets 'Shtg1'
    
    6
    d['P'] # Gets 'Shtg1'
    
    7
    d['P'] # Gets 'Shtg1'
    
    8
    d['P'] # Gets 'Shtg1'
    
    9
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    0
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    1

    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    2
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    8

    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    5
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    04___

    d['P'] # Gets 'Shtg1'
    
    6
    d['P'] # Gets 'Shtg1'
    
    7
    The original list is : [('Gfg', [1, 3, 4]), ('is', [5, 8, 10]), ('best', [11, 9, 2])]
    The required key of list values : Gfg
    2
    d['P'] # Gets 'Shtg1'
    
    9
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    0
    In [1]: t = (
       ...:     ('P', 'Shtg1'),
       ...:     ('R', u'Shtg2'),
       ...:     ('D', 'Shtg3'),
       ...: )
    
    In [2]: d = dict(t)
    
    In [3]: d['P']
    Out[3]: 'Shtg1'
    
    21
    >>> from collections import namedtuple
    >>> MyType = namedtuple('MyType', ['P', 'R', 'D'])
    >>> TUPLE = MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    >>> TUPLE
    MyType(P='Shtg1', R=u'Shtg2', D='Shtg3')
    
    >>> TUPLE.P
    'Shtg1'
    
    >>> TUPLE.R
    u'Shtg2'
    
    >>> TUPLE.D
    'Shtg3'
    
    >>> TUPLE[0:]
    ('Shtg1', u'Shtg2', 'Shtg3')
    
    8__

    Đầu ra: & nbsp;

    The original list is : [('Gfg', [1, 3, 4]), ('is', [5, 8, 10]), ('best', [11, 9, 2])]
    The required key of list values : Gfg


    Làm thế nào để bạn trích xuất các giá trị tuple?

    Trong các bộ dữ liệu python có thể được giải nén bằng cách sử dụng một hàm trong bộ hàm chức năng được truyền và trong các giá trị chức năng được giải nén vào biến bình thường.using a function in function tuple is passed and in function values are unpacked into normal variable.

    Tuple có khóa và giá trị không?

    Từ điển có một phương thức được gọi là các mục trả về một chuỗi các bộ dữ liệu, trong đó mỗi tuple là một cặp giá trị khóa.Như bạn nên mong đợi từ một từ điển, các mục không theo thứ tự cụ thể.Bản cập nhật phương thức từ điển cũng lấy một danh sách các bộ dữ liệu và thêm chúng, dưới dạng các cặp giá trị khóa, vào một từ điển hiện có.each tuple is a key-value pair. As you should expect from a dictionary, the items are in no particular order. The dictionary method update also takes a list of tuples and adds them, as key-value pairs, to an existing dictionary.

    Làm cách nào để có được một khóa tuple?

    Trong phương pháp này, chúng tôi chỉ lặp lại thông qua từng mục từ điển và đưa các yếu tố của khóa vào một danh sách.Nhiệm vụ này có thể được thực hiện ở dạng nhỏ gọn hơn, sử dụng một từ thay vì một dòng bằng cách sử dụng from_iterable (), trong đó truy cập bên trong các phần tử và lưu trữ trong danh sách.iterate through the each dictionary item and get it's key's elements into a list. This task can be performed in more compact form, using one word instead of one-line by using from_iterable() , which internally accesses the tuple elements and stores in list.

    Khóa là gì

    Một tuple1 là một chuỗi các giá trị giống như một danh sách.Các giá trị được lưu trữ trong một tuple có thể là bất kỳ loại nào và chúng được lập chỉ mục bởi các số nguyên.Sự khác biệt quan trọng là các bộ dữ liệu là bất biến.Các bộ dữ liệu cũng có thể so sánh và có thể băm để chúng tôi có thể sắp xếp các danh sách chúng và sử dụng các bộ dữ liệu làm giá trị chính trong từ điển Python.1 is a sequence of values much like a list. The values stored in a tuple can be any type, and they are indexed by integers. The important difference is that tuples are immutable. Tuples are also comparable and hashable so we can sort lists of them and use tuples as key values in Python dictionaries.