我有一个可能包含1个或多个元素的列表。如果下面的代码在列表中包含多个元素,则可以正常工作。但是,如果只有一个元素,它将分解为字符列表。
my_dict = {fruit: ['apple', 'banana', 'carrot']}
li = my_dict.get('fruit')
for fruit in li:
print fruit
答案 0 :(得分:1)
即使只有一个元素,只要将其括在方括号中,它也将被视为列表中的单个项目。所以这个:
my_dict = {'fruit': ['apple']}
将按预期工作,同时:
my_dict = {'fruit': 'apple'}
不会。
(而且,字典键的名称(例如fruit
)应加引号,因为它们不是变量。)
答案 1 :(得分:1)
只需创建一个包含单个元素的列表
my_dict = {'fruit': ['apple']}
li = my_dict.get('fruit')
for fruit in li:
print(fruit)
然后你得到
apple
如果您将字典更改为
my_dict = {'fruit': 'apple'}
当您遍历该对象时,将获得该字符串的每个字符。
答案 2 :(得分:0)
您应确保一致的数据类型。您假定带有for循环的元素列表。传递字符串时,Python会将其拆分为字符。
您应该使用类似
(define zero (lambda (f) (lambda (x) x)))
(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))
(define one (lambda (f) (f (f x))))
(define (add m n)
(lambda (f) (lambda (x) ((m f) ((n f) x)))))
(define (church-numeral x)
(define (iter result x count)
(if (< count x)
(iter (add-1 result x (+ 1 count)))
count))
(iter zero x 0))
(church-numeral 7)
仅使用一个元素时。
如果您不能确保将列表作为字典值,则必须手动检查类型。
preferenceManager.preferenceDataStore = dataStore
setPreferencesFromResource(R.xml.account_settings, rootKey)