我知道在Stack Overflow上已经多次询问过与此类似的问题,但是我需要从列表中删除重复的元组,但不仅仅是它们的元素匹配,它们的元素必须处于相同的顺序.换言之,(4,3,5)与(3,4,5)将同时出现在输出中,而如果有两个(3,3,5)和(3,3,5)中,只有一个将是在输出中.
具体来说,我的代码是:
import itertools
x = [1,1,1,2,2,2,3,3,3,4,4,5]
y = []
for x in itertools.combinations(x,3):
y.append(x)
print(y)
Run Code Online (Sandbox Code Playgroud)
其中输出相当冗长.例如,在输出中,应该有(1,2,1)和(1,1,2).但应该只有一个(1,2,2).
我有UITabBarController三个选项卡.当按下某一个时,我希望用户立即看到一个人视图控制器(ABPersonViewController该类的一个实例).
我不想仅将该presentViewController()方法与人员视图控制器一起用作参数,因为当用户可以看到它所呈现的基础视图控制器时,这会导致延迟.
我也无法使视图控制器继承ABPersonViewController,因为它是由Apple设置的,因此它不能被子类化.有没有办法可以做到这一点?
感谢JAL的回答:
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
let navViewController = viewController as! UINavigationController
// First, check to see if the view controller is the one you want to override
if let myViewController = navViewController.viewControllers[0] as? ThirdViewController {
let abpvc = ABPersonViewController()
abpvc.personViewDelegate = self
self.navigationController?.pushViewController(abpvc, animated: true)
return false
}
return true
}
Run Code Online (Sandbox Code Playgroud) 使用ABAddressBook,当我希望用户能够为他们以前从未见过的联系人选择"创建新联系人"和"添加到现有联系人"时,我会创建并呈现一个ABUnknownPersonViewController.
我无法在CNContacts框架中找到复制此功能的方法.在我看来,它CNContactViewController(forUnknownContact: contact)可以工作,但不幸的是,这只让用户"发送消息"或"共享联系人".
如何允许用户将联系人保存到CNContacts中作为新联系人或作为现有联系人的一部分的地址簿?
func presentContact() {
let status = CNContactStore.authorizationStatusForEntityType(.Contacts)
switch status {
case .Authorized: ()
case .NotDetermined: requestAccess()
case .Denied, .Restricted: accessDenied()
}
print("authorized? \(status == .Authorized)") //prints "authorized? true"
let unknown = CNContactViewController(forUnknownContact: contact!)
unknown.delegate = self
self.navigationController?.pushViewController(unknown, animated: false)
}
Run Code Online (Sandbox Code Playgroud)
即使我尝试请求访问,用户仍然无法保存联系人.
我希望有一个itertools功能,但我找不到一个.我希望Python从列表的每个子列表中选择一个项目,并维护顺序,与它们进行各种可能的组合.例如,希望如此
x = [[1,2,3],[1,2,3,4],[1,2,3,4,5]]
Run Code Online (Sandbox Code Playgroud)
可能成为
[[1,1,1],[1,1,2],[1,1,3],[1,1,4],[1,1,5],[1,2,1]...]
Run Code Online (Sandbox Code Playgroud)
并且此输出将包括每个子列表中的一个项目,因此[5,5,5]和[4,4,5]都不会包含在其中.此外,由于秩序很重要,而[3,4,5]可能在输出中,[5,4,3]不能.但是,当然,该方法应适用于原始列表中的所有数字和任何数字.
谢谢!
大家!
我正在尝试将新子列表添加到现有列表中,但我不确定如何执行此操作.这是我的代码:
data = [[4,5],[3,7]]
search = 9
for sublist in data:
if search in sublist:
sublist.append(0)
print("there", sublist)
break
else:
print("not there")
break
def sublist():
[5,6]
print[data]
Run Code Online (Sandbox Code Playgroud)
但是,如果不存在搜索,则子列表不会添加到原始列表中.我怎样才能做到这一点?
干杯! 5813
所以,我有一个包含许多子列表的列表,看起来像这样:
[[(1,2),1],[(5,2),3],[(4,0),2]]
Run Code Online (Sandbox Code Playgroud)
我想Python来加在一起的第二个项目中的每个列表,因此1,在3和2.我一直试图找到itertools它的功能,但我没有成功.