簡體   English   中英

Python有序對

[英]Python Ordered Pairs

我是python的新手,我試圖生成有序對,然后評估set關系的Domain和Range。 我當前代碼的問題是,它可以很好地設置列表,但沒有給我實際的有序對,而是給了我(我假設是)有序對的地址。

    relation = [[] for i in range(numOrderPairs)]
    for x in range(numOrderPairs):
       inputOrderPair = input("\nPlease enter an ordered pair, i.e (x, y).")
       orderPair = (int(t.strip("(),")) for t in inputOrderPair.split())
       relation[x] = orderPair
    print(relation)

    >>>[<generator object <genexpr> at 0x7f4242a0ab48>, <generator object 
       <genexpr> at 0x7f4242a0aba0>, <generator object <genexpr> at 
       0x7f4242a0abf8>]

以下代碼返回一個生成器。

(int(t.strip("(),")) for t in inputOrderPair.split())

我認為您可能期望它會創建一個元組,在這種情況下,您將必須執行以下操作:

tuple(int(t.strip("(),")) for t in inputOrderPair.split())

或者您可以只使用列表

[int(t.strip("(),")) for t in inputOrderPair.split()]

一種更簡單,更安全的方法是使用ast.literal_eval評估表達式:

范例:

In [70]: inputOrderPair='(2,4)'

In [71]: ast.literal_eval(inputOrderPair)
Out[71]: (2, 4)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM