- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python实现比较两个列表(list)范围由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
有一道题: 比较两个列表范围,如果包含的话,返回TRUE,否则FALSE。 详细题目如下:
Create a function, this function receives two lists as parameters, each list indicates a scope of numbers, the function judges whether list2 is included in list1. 。
Function signature: differ_scope(list1, list2) 。
Parameters: list1, list2 - list1 and list2 are constructed with strings, each string indicates a number or a scope of numbers. The number or scope are randomly, can be overlapped. All numbers are positive. 。
E.g. ['23', '44-67', '12', '3', '20-90'] Return Values: True - if all scopes and numbers indicated by list2 are included in list1. False - if any scope or number in list2 is out of the range in list1. Examples: case1 - list1 = ['23', '44-67', '12', '3', '20-90'] list2 = ['22-34', '33', 45', '60-61'] differ_scope(list1, list2) == True case2 - list1 = ['23', '44-67', '12', '3', '20-90'] list2 = ['22-34', '33', 45', '60-61', '100'] differ_scope(list1, list2) == False 。
贴上自己写的代码如下:(备注: python 2.7.6) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
def
differ_scope(list1, list2):
print
"list1:"
+
str
(list1)
print
"list2:"
+
str
(list2)
#设置临时存放列表
list1_not_
=
[]
#用于存放列表1正常的数字值,当然要用int()来转换
list1_yes_
=
[]
#用于存放列表1中范围值如 44-67
list1_final
=
[]
#用于存放列表1中最终范围值 如:[1,2,3,4,5,6,7,8,9,10]
temp1
=
[]
list2_not_
=
[]
#用于存放列表2正常的数字值,当然要用int()来转换
list2_yes_
=
[]
#用于存放列表2中范围值如 44-67
list2_final
=
[]
#用于存放列表2中最终范围值 如:[1,2,3,4,5,6,7,8,9,10]
temp2
=
[]
temp
=
[]
#用于存放列表1,与列表2比较后的列表,从而判断结果为True还是False.
#对列表1进行处理
for
i
in
range
(
len
(list1)):
#用FOR循环对列表1进行遍历
tag
=
0
if
list1[i].find(
'-'
)>
0
:
#对含范围的数字进行处理,放到list_yes_列表中
strlist
=
list1[i].split(
'-'
)
list1_yes_
=
range
(
int
(strlist[
0
]),
int
(strlist[
1
])
+
1
)
#让其生成一个范围列表
for
each
in
list1_yes_:
#FOR循环遍历所有符合条件的.
[temp1.append(each)]
else
:
#对列表1中正常的数字进行处理,放到list_not_列表中
list1_not_.append(
int
(list1[i]))
#对列表1中进行处理,放到list_yes_
[temp1.append(i)
for
i
in
list1_not_
if
not
i
in
temp1]
#去除重复项
list1_final
=
sorted
(temp1)
#比较后,排序,并放到list1_final列表中
print
"list1_final value is:"
+
str
(list1_final)
#打印排序后最终list1_final列表
#对列表2进行处理
for
i
in
range
(
len
(list2)):
if
list2[i].find(
'-'
)>
0
:
strlist
=
list2[i].split(
'-'
)
list2_yes_
=
range
(
int
(strlist[
0
]),
int
(strlist[
1
])
+
1
)
for
each
in
list2_yes_:
[temp2.append(each)]
print
"Temp2:"
+
str
(temp2)
else
:
list2_not_.append(
int
(list2[i]))
[temp2.append(i)
for
i
in
list2_not_
if
not
i
in
temp2]
list2_final
=
sorted
(temp2)
print
"list2_final value is:"
+
str
(list2_final)
#对两个列表进行比较,得出最终比较结果.
[temp.append(i)
for
i
in
list2_final
if
not
i
in
list1_final]
#比较两个列表差值.
print
"In list2 but not in list1:%s"
%
(temp)
#打印出列表1与列表2的差值
if
len
(temp)>
=
1
:
print
"The result is: False"
else
:
print
"The result is: True"
if
__name__
=
=
'__main__'
:
list1
=
[
'23'
,
'44-67'
,
'12'
,
'3'
,
'90-100'
]
list2
=
[
'22-34'
,
'33'
,
'45'
]
differ_scope(list1,list2)
|
总结: 1. 这道题关键是想法,如果整成坐标的方式来比较,会很麻烦。 2. 列表转成范围后,如果消除重复项,同样是里面的关键所在。 3. 其次是对列表遍历的操作,同样挺重要.
最后此篇关于Python实现比较两个列表(list)范围的文章就讲到这里了,如果你想了解更多关于Python实现比较两个列表(list)范围的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如标题所示,ans_list是一个答案列表,ans_index是一个数字(答案在词汇表中的索引,但与atm无关) 这里生成的 tree.anslist 是什么? (例如,仅针对第一个),忽略迭代。 f
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将具有一个元素的东西拿走。 这与 How do I “flatte
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将带有一个元素的东西拿走。 这与 How do I “flatte
这个问题已经有答案了: Convert nested list to 2d array (3 个回答) 已关闭 7 年前。 java中有没有快捷方式可以转换 List> 到 String[][] ?
我在排序时遇到问题 List> 。我创建了一个自定义比较器,在其中编写了对数据进行排序的代码。 public class CustomComparator implements Comparator
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Java Generics: Cannot cast List to List? 我只是想知道为什么下面的java代
试图想出一个 LINQy 方法来做到这一点,但我什么也没想到。 我有一个对象列表<>,其中包含一个属性,该属性是逗号分隔的字母代码列表: lst[0].codes = "AA,BB,DD" lst[1
假设我有这些任务: points = [] point = (1, 2) 我怎么会这样做: points += point 它工作得很好,并且给了我点 = [1, 2]。但是,如果我这样做: poin
如何在 scala 中将 List[Task[List[Header]]] 类型转换为 Task[List[Header]]。 我有一个方法返回 Task[List[Header]] 并多次调用 do
如何在 Java 中查找二维列表的元素? 我有一个参数为 List> 的函数我想知道如何找到这个列表的行和列。 最佳答案 如果你喜欢 List> obj 然后你就可以像这样访问 obj.get(cur
分配 List到 List工作正常。 分配 List>到 List>不编译。 代码 public class Main { public static void main(String[] a
我正在用 Java 编写一个方法,该方法必须接收并迭代 Serializable 的 List。 有什么区别: public void myMethod(List list) { } 和 public
我看到很多人想用 mvvm 更新网格/列表/树的一部分,但他们不想刷新整个列表。 对于所有遇到此问题的人,我做了以下示例。 希望这对你有用。 最佳答案 这是一个简单的例子。整个代码中最重要的是: Bi
我正在为现有的 C++ 库编写包装器,该库使用列表,其中 T 是自定义结构。我被建议使用 vector 而不是列表,但我试图避免修改库。 为了更好地理解这个场景,我做了一个简单的应用程序,使用一个列表
List list List list 这两种声明有什么区别吗? 谢谢, 最佳答案 是的。 List可以包含所有派生自 Base 的不同事物的混合物. List包含同质项(从某种意义上说,它们必须全部
有人可以尽可能详细地解释以下类型之间的区别吗? List List List 让我更具体一点。我什么时候想使用 // 1 public void CanYouGiveMeAnAnswer(List l
我有一个元组列表,每个元组都是一对列表。所以我的数据看起来像: mylist = [(['foo', 'bar'], ['bar', 'bar']),(['bar', 'bar'],['bar', '
也许是一个时髦的标题,但我遇到了以下问题: 给定一个类型为 (a * b) list 的列表,我想创建一个类型为 (a * b list) list 的新列表。一个例子: 给定列表 let testL
我是一名优秀的程序员,十分优秀!