segue为视图添加了导航(segue adds a navigation to the view)
我已经向View2添加了一个带有“Back”项的
NavigationBar
,然后我从这个项目中拖动到View1以添加一个segue
(一个show
segue)。 现在每当使用“Back”导航到View1时,我会在此视图中获得一个导航栏(带有“back”项)(View1)。 我只想要一个导航栏到View2,而不是View1。 我总是可以通过编程方式隐藏View1的NavigationBar
但我想知道我是否做错了什么。I have added a
NavigationBar
to View2 with a "Back" item and then I ctrl-dragged from this item to View1 to add asegue
(ashow
segue). Now whenever "Back" is used to navigate to View1, I get a navigation bar (with an item "back") to this view (View1). I only want a navigation bar to View2, not View1. I can always hide View1'sNavigationBar
programmatically but I am wondering if I am doing something wrong.
原文:https://stackoverflow.com/questions/43283410
最满意答案
这会将列表中的每个项目与另一个列表中的每个项目进行比较。 如果两者都有字母(例如TK132C和TK132P不匹配),则无效。 如果这是一个问题,请在下面评论。
list_1 = ['TK123','TK221','TK132'] list_2 = ['TK123A','TK1124B','TK221L','TK132P'] ans = [] for itm1 in list_1: for itm2 in list_2: if itm1 in itm2: break if itm2 in itm1: break else: ans.append(itm1) for itm2 in list_2: for itm1 in list_1: if itm1 in itm2: break if itm2 in itm1: break else: ans.append(itm2) print ans >>> ['TK1124B']
This compares every item in the list to every item in the other list. This won't work if both have letters (e.g. TK132C and TK132P wouldn't match). If that is a problem, comment below.
list_1 = ['TK123','TK221','TK132'] list_2 = ['TK123A','TK1124B','TK221L','TK132P'] ans = [] for itm1 in list_1: for itm2 in list_2: if itm1 in itm2: break if itm2 in itm1: break else: ans.append(itm1) for itm2 in list_2: for itm1 in list_1: if itm1 in itm2: break if itm2 in itm1: break else: ans.append(itm2) print ans >>> ['TK1124B']
相关问答
更多-
编辑:在发现问题的人简单地不知道__hash__我在评论中提供了这些信息: 要使用集合,请实现__hash__ 。 所以如果obj1 == obj2当obj1.a == obj2.a and ob1.b == obj2.b , __hash__应该return hash((self.a, self.b)) ,你的集合将按预期工作。 这解决了他们的问题,他们切换到使用集合。 这个答案的其余部分现在已经过时了,但它仍然是正确的(但效率非常低),所以我会把它留在这里。 这段代码做你想要的。 最后, newx和ne ...
-
只要第一个元素存在于两个列表中,您的代码就会返回。 要检查所有元素,你可以尝试这个例子: def detect(list_a, list_b): return set(list_a).issubset(list_b) 其他可能性,无需创建一个set : def detect(list_a, list_b): return all(x in list_b for x in list_a) 如果你对你的代码中究竟有什么错误感到好奇,这是目前形式的修复(但它不是pythonic ): def ...
-
Python - 比较列表(Python - Comparing lists)[2023-09-10]
使用集而不是列表: largeStraight = [{1, 2, 3, 4, 5}, {2, 3, 4, 5, 6}] smallStraight = [{1, 2, 3, 4}, {2, 3, 4, 5} , {3 ,4, 5, 6}] 现在您可以使用set操作: if any(ls.issubset(dice) for ls in largeStraight): # a large straight elif any(ss.issubset(dice) for ss in smallStra ... -
一种解决方案可能是使用包含两个原始列表的所有元素的第三个列表。 然后我们可以对新列表进行排序,并在迭代它时,我们可以检查原始列表中第三个列表的元素是否存在。 实际上将第三个列表设置为一组会更好。 根据Patrick Haugh的建议,我们应该在迭代之前将原始列表转换为集合。 因此,该过程将更有效。 为什么? 关注这篇文章。 哪个更快,为什么? 设置还是列出? list_1 = set(['a', 'b', 'c', 'd', 'e', 'f']) # Or list_1 = {'a', 'b', 'c', ...
-
也许 keywords = ['nike', 'adidas', 'reebok'] items = ['sneakers', 'sneaker shoes', 'adidas shoes', 'nike', 'any shoe', 'all nikes', 'a nike shoe'] bits = [any(keyword in item for keyword in keywords) for item in items] 或更好 import re regex = re.compile(r'%s' ...
-
给定序列seq1和seq2 ,你可以seq1计算对称差 set(seq1).symmetric_difference(seq2) 例如, In [19]: set([1,2,5]).symmetric_difference([1,2,9,4,8,9]) Out[19]: {4, 5, 8, 9} 提示:使用较小的列表生成集合通常更快: In [29]: %timeit set(range(60)).symmetric_difference(range(600)) 10000 loops, best of ...
-
这工作0(n^2)但它很容易阅读和理解。 result = [] for reference, x, y in list1: for a, b, temperature in list2: if x == a and y == b: result.append([temperature, reference]) 通过迭代列表并将坐标存储在dict ,可以将复杂度降至0(n) ,如下所示: dict1 = {} for reference, x, ...
-
对于这种事情,您可能希望使用自定义哈希方法创建一个简单的类,以便您可以发现相同的值。 这样你就不必进入将所有价值相互比较的混乱业务。 一旦您可以散列两个点和值的唯一组合,您只需制作两组列表并将它们相交。 一个基本的例子看起来像这样(用openMaya MVectors代替pymel点 - 但想法是一样的) from maya.api.OpenMaya import MVector class PointHash(object): def __init__(self, p1, p2, v): ...
-
在python中交换两个列表(Swap two lists in python)[2022-09-23]
听起来你主要使用循环中的list1和list2 。 所以你可以重新分配他们的价值观: list1 = list2 list2 = [0]*len(list2) Python还允许您将其缩短为一行: list1, list2 = list2, [0]*len(list2) 但在这种情况下,我发现双线版本更具可读性。 或者,如果你真的想要list_of_lists ,那么: list_of_lists = [list2, [0]*len(list2)] 或者如果你想要两个: list1, list2 = ... -
这会将列表中的每个项目与另一个列表中的每个项目进行比较。 如果两者都有字母(例如TK132C和TK132P不匹配),则无效。 如果这是一个问题,请在下面评论。 list_1 = ['TK123','TK221','TK132'] list_2 = ['TK123A','TK1124B','TK221L','TK132P'] ans = [] for itm1 in list_1: for itm2 in list_2: if itm1 in itm2: b ...