如何检查变量是否为元组列表?
isinstance 仅显示变量是列表还是元组,但我不知道如何检查嵌套结构。
答案 0 :(得分:6)
您可以结合使用all
和instanceof
:
>>> a = [(1,2),(3,5)]
>>> all(isinstance(item, tuple) for item in a)
True
>>> b = [(1,2),(3,5), "string"]
>>> all(isinstance(item, tuple) for item in b)
False
>>>
答案 1 :(得分:1)
使用all
>>> lit=[(1,),(2,),(3,)]
>>> lin=[(1,),(2,),(3,),4]
>>> all(isinstance(e,tuple) for e in lit)
True
>>> all(isinstance(e,tuple) for e in lin)
False
你也可以在过滤器中否定一个lambda来测试和找到不是元组的元素:
>>> filter(lambda e: not isinstance(e, tuple), lit)
[]
>>> filter(lambda e: not isinstance(e, tuple), lin)
[4]
或者使用列表推导来查找非元组的索引:
>>> [i for i, e in enumerate(lit) if not isinstance(e, tuple)]
[]
>>> [i for i, e in enumerate(lin) if not isinstance(e, tuple)]
[3]
如果您使用filter
或列表理解,那么空列表也是“错误的”#39;因此,如果您正在寻找不是元组的实际元素,那么它们都可以是测试和结果。
答案 2 :(得分:0)
您必须遍历列表。
@PUT
//path
@Path("/carte")
//json form
@Produces("application/json; charset=UTF-8")
@PermitAll
public List<Carte> setAllCarte(@FormParam ("nom") String nom , @FormParam("prenom") String prenom , @FormParam("date") Integer date ,
@FormParam("compte") Integer compte);
//implimante the list with a json data
public List<Carte> setAllCarte(String nom, String prenom, Integer date,
Integer compte) {
Carte list = new Carte();
list.setNom(nom);
list.setPrenom(prenom);
list.setDate(date);
list.setCompte(compte);
return setAllCarte(nom, prenom, date, compte);