小编581*_*813的帖子

Python:如果它们完全相同,包括项目顺序,则从列表中删除重复的元组

我知道在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).

python tuples list duplicates python-itertools

17
推荐指数
1
解决办法
3万
查看次数

TabBarController中的PersonViewController

我有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)

uitabbarcontroller abaddressbook ios swift

11
推荐指数
1
解决办法
407
查看次数

CNContactViewController()的"创建新联系人"和"添加到现有联系人"

使用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)

即使我尝试请求访问,用户仍然无法保存联系人.

contacts ios swift cncontact

7
推荐指数
1
解决办法
6107
查看次数

Python:从每个列表中选择一个项目但是尽可能组合

我希望有一个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]不能.但是,当然,该方法应适用于原始列表中的所有数字和任何数字.

谢谢!

python list python-itertools sublist

5
推荐指数
1
解决办法
1983
查看次数

将新子列表添加到现有列表

大家!

我正在尝试将新子列表添加到现有列表中,但我不确定如何执行此操作.这是我的代码:

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

python list sublist

3
推荐指数
1
解决办法
4147
查看次数

在列表中添加每个子列表的所有第二项

所以,我有一个包含许多子列表的列表,看起来像这样:

[[(1,2),1],[(5,2),3],[(4,0),2]]
Run Code Online (Sandbox Code Playgroud)

我想Python来加在一起的第二个项目中的每个列表,因此1,在32.我一直试图找到itertools它的功能,但我没有成功.

python list python-itertools

3
推荐指数
1
解决办法
1278
查看次数