在Python列表中比较并赋值

时间:2015-10-21 08:50:07

标签: python

我有两个列表

<security:authentication-manager id="authManager" alias="authenticationManager ">

我需要检查电子邮件是否存在,如果存在,请分别将其分配为名称电子邮件,否则将名称分配给名称并将电子邮件字段留空。在这种情况下,名称电子邮件具有严格的格式。所以我使用[name1, email1, name2, email2, name3, email3, name4, email4] [name5, name5, name7] 运算符来定义它是否在电子邮件中。

这是我的代码:

@

此代码的问题是,如果它看到电子邮件完全正常工作,但对于名称字段,它将电子邮件设置为空白。无论如何在Python中这样做?

3 个答案:

答案 0 :(得分:1)

for i, x in enumerate(mylist):
    if '@' in x and i > 0:
        name = mylist[i-1]
        email = x

答案 1 :(得分:1)

你没有提到什么是mylist,但我认为它是电子邮件列表,你正在运行它的值来检查电子邮件是否存在(?)< / p>

由于您的列表以name开头,因此您需要检查i + 1并检查mylist是否具有索引i + 1。如果你找到它,那么你将增加i 2次,以防止单独解析名称 - 所以请改用它。

i = 0
while i < len(mylist):
    if i + 1 < len(mylist) and '@' in mylist[i+1]:
        name = mylist[i]
        email = mylist[i+1]
        i+=1
    else:
        email = ''
        name = mylist[i]

    print(name)
    print(email)
    i+=1

答案 2 :(得分:0)

您可以考虑将数据放入字典中,其中名称会自动链接到电子邮件(如果存在)。在这里,我更改了您的原始列表,以反映您电子邮件地址中的“@”。

<asp:SqlDataSource ID="SqlDataSourceClothesMen" runat="server" 
            ConnectionString="Data Source=DESKTOP-1EGF4SE\SQLEXPRESS;Initial Catalog=clickstream;Integrated Security=True" 
            SelectCommand="select * from [ClothesMen]"></asp:SqlDataSource>
<asp:ListView ID="ListView1" runat="server" DataSourceID="" <!--I'm changing this property-->
             GroupItemCount="3">

            <LayoutTemplate>

                <table style="table-layout:fixed;width:100%">
                    <tr id="groupPlaceholder" runat="server"></tr>
                </table>
            </LayoutTemplate>

            <GroupTemplate>

                <tr>
                    <td id="itemPlaceholder" runat="server">

                    </td>
                </tr>
            </GroupTemplate>

            <ItemTemplate>
                <td align="center">
                    <asp:Image runat="server" ImageUrl='<%# Eval("ImageUrl") %>' Height="20%" Width="70%" /><br />
                    <asp:Label ID="ProductTitleLabel" runat="server" Text='<%# Eval("ProductTitle") %>'></asp:Label><br />
                    <asp:Label ID="PriceLabel" runat="server" Text='<%# Eval("Price") %>'></asp:Label><br />

                </td>
            </ItemTemplate>

            <GroupSeparatorTemplate>
                <tr runat="server">
                    <td colspan="3"><hr /></td>
                </tr>
            </GroupSeparatorTemplate>
        </asp:ListView>