我有两个列表,我想知道如何将列表人员的第一个元素放到最后一个位置,所以我将获得这两个列表之间最小的绝对差异并记住每次我们放置第一个列表中的男人到最后一个地方。我希望你能理解这个问题.. 列表女人保持不变,我只想通过将第一个元素放到最后一个位置来改变列表人,而将第二个元素放到第一个位置。 示例 - >男人[172,181,166,172,174,165,169,169,185,168]在第一次改变后......
__author__ = 'Majky'
woman = [158, 166, 150, 158, 152, 160, 172, 159, 158, 162]
men = [168, 172, 181, 166, 172, 174, 165, 169, 169, 185]
biggest_abs = 0
for x, y in zip(men, woman):
print(x, y, abs(x-y))
if biggest_abs < abs(x-y):
biggest_abs = abs(x-y)
print("biggest_abs is ", najvecja_abs)
答案 0 :(得分:3)
men = men[1:] + [men[0]]
我会做什么。这会对列表进行切片,使得您拥有除第一个元素之外的所有元素,然后将其添加到末尾。
作为示例,当应用于[172, 181, 166, 172, 174, 165, 169, 169, 185, 168]
的初始值时,会返回men
。
答案 1 :(得分:2)
有多种方法可以执行此操作...此列表会对列表进行编辑(意味着所有对&#39; men&#39;列表的引用都会看到更改):
>>> men = [168, 172, 181, 166, 172, 174, 165, 169, 169, 185]
>>> men.append(men.pop(0))
>>> men
[172, 181, 166, 172, 174, 165, 169, 169, 185, 168]
答案 2 :(得分:0)
你的问题现在还不清楚。你是否愿意将男性价值观与女性的每一个价值观进行比较。
for m in men:
biggest_abs = 0
for w in women:
a = abs(m-w)
if biggest_abs < a:
biggest_abs = a
print("biggest_abs is ", biggest_abs)
这将打印中间步骤:
('biggest_abs is ', 18)
('biggest_abs is ', 22)
('biggest_abs is ', 31)
('biggest_abs is ', 16)
('biggest_abs is ', 22)
('biggest_abs is ', 24)
('biggest_abs is ', 15)
('biggest_abs is ', 19)
('biggest_abs is ', 19)
('biggest_abs is ', 35)
或整体解决方案:
biggest_abs = 0
for m in men:
for w in women:
a = abs(m-w)
if biggest_abs < a:
biggest_abs = a
print("biggest_abs is ", biggest_abs)
('biggest_abs is ', 35)
对于最小差异,只需将geater切换为小于if条件的值,并为该值赋予有意义的名称。