<!--Your stylesheet -->
<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css">
<!--To Add GlyphIcon -->
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css">
我有一个while循环填充一个对象列表,另一个循环填充一个关联Var1:Account2的字典。但是,如果密钥与对象的Account1匹配,我需要将字典的值放入每个对象中。
基本上,我有:
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../fonts/glyphicons-halflings-regular.eot');
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
我试过这个:
class SpreadsheetRow(object):
def __init__(self,Account1):
self.Account1=Account1
self.Account2=0
但是,它不起作用,我怀疑这是我的第一个“if”语句,因为listOfSpreadsheetRowObjects只是这些对象的列表。我如何访问每个对象的account1,以便根据需要匹配它们?
最终,我应该有三个具有以下信息的对象: SpreadsheetRow self.Account1 =帐户1 self.Account2 =(如果account1与我字典中的键匹配,则来自我的字典中的v)
答案 0 :(得分:0)
您可以在any()
中使用生成器表达式来检查这些对象的任何account1
属性是否与k
相等:
if any(k == item.account1 for item in listOfSpreadsheetRows):
答案 1 :(得分:0)
您可以尝试使用next
功能,如下所示:
next(i for i in listOfSpreadsheetRows if k == i.account1)
答案 2 :(得分:0)
如果您有字典d
并想要获取与密钥x
相关联的值,那么您可以像这样查找该值:
v = d[x]
因此,如果您的词典被称为dict_of_account1_to_account2
且密钥为self.Account1
,并且您想将该值设置为self.Account2
,那么您可以这样做:
self.Account2 = dict_of_account1_to_account2[self.Account1]
使用字典的全部意义在于,您不必遍历整个事物来查找字典。
否则,如果在创建所有.Account2
对象后对SpreadsheetRow
进行初始化,那么使用self
没有意义,则需要遍历每个SpreadsheetRow
item并为每一个做任务,如下所示:
for row in listofSpreadsheetRowObjects:
for k, v in dict_of_account1_to_account2.iteritems():
if row.Account1 == k:
row.Account2 = v
但同样,您不必遍历字典进行分配,只需从字典中查找row.Account1
:
for row in listofSpreadsheetRowObjects:
row.Account2 = dict_of_account1_to_account2[row.Account1]