列出一个列表l
,我想在索引处生成一个新的元素列表:
0, 1, 2, 3, 2, 4, 5, 4, 6, 7, 6, 8, 9, 8, 0
我知道这似乎有点奇怪,但a problem是必要的。
至于我的尝试,我目前正在使用以下内容,但希望有人有更短更清洁的东西。
[*l[0:3], l[3], l[2], l[4], l[5], l[4], l[6], l7], l[6], l[8], l[9], l[8], l[0]]
答案 0 :(得分:2)
您可以使用列表理解:
$intakesMonth1 = Intakes::whereYear('created_at', '=', 2018)
->whereMonth('created_at', '=', 1)
->get();
$intakesMonth2 = Intakes::whereYear('created_at', '=', 2018)
->whereMonth('created_at', '=', 2)
->get();
答案 1 :(得分:2)
将map
与项目getter一起使用应该可以胜任:
>>> letters = list('ABCDEFGHIJ')
>>> indexes = [0, 1, 2, 3, 2, 4, 5, 4, 6, 7, 6, 8, 9, 8, 0]
>>> print(list(map(letters.__getitem__, indexes)))
['A', 'B', 'C', 'D', 'C', 'E', 'F', 'E', 'G', 'H', 'G', 'I', 'J', 'I', 'A']
>>>
答案 2 :(得分:1)
用作l
值的项目等于其索引,以便您可以轻松验证结果:
indexes = [0, 1, 2, 3, 2, 4, 5, 4, 6, 7, 6, 8, 9, 8, 0]
l = list(range(15))
print(l) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
result = [l[i] for i in indexes]
print(result) # [0, 1, 2, 3, 2, 4, 5, 4, 6, 7, 6, 8, 9, 8, 0]