【问题标题】:remove numbers from a list with words从带有单词的列表中删除数字
【发布时间】:2017-03-31 11:32:52
【问题描述】:

我很讨厌这个,所以我会尽量说清楚

我有一个从文本文件制作的列表。 示例如下:

['john,10','bob,20','ray,30']

tats 是如何打印出来的。 我知道我可以访问每个单元,例如 (list[0])

约翰,10

但是有没有办法只从说列表中删除数字或字母[0]

约翰

可能很奇怪的问题

【问题讨论】:

    标签: list digits


    【解决方案1】:

    在这种情况下,您可以尝试使用如下方法: In [62]: guys=['john,10','bob,20','ray,30'] In [66]: guys_new=[] ...: for i in guys: ...: guys_new.append(i.split(',')[0]) ...: print guys_new ...: ['john', 'bob', 'ray']

    【讨论】:

    • 太棒了,这非常接近我的需要。我会玩一会儿。
    • 是否也可以反过来做,只取出数字而不是放入单独的列表中?将 [0] 值更改为 [1] 不起作用
    • @ultima 当然可以,使用技巧,比如[-1],看看会发生什么。如果我在前者中说的对你有一点帮助,投我一票欢迎。^_^.
    • 我投票了,但我的代表少于 15 个所以不算 lmao
    • @ultima 我也是,没关系,LoL...顺便说一句,我从你那里学到了一个Imao的新词,我在名为dict.youdao.com的自然语言翻译引擎中搜索后非常有趣在中国很受欢迎。
    【解决方案2】:

    我不知道你使用的是什么语言。如果您使用的是 C++ 之类的语言,则可以使用 ctype 标头

    #include <ctype.h>
    using namespace std;
    int main()
    {
        string list[] = {"john,10", "bob,20", "ray,30"};
        string temp = "";
    
        for(int i = 0; i < 3; i++) //3 = num elements
        {
            for(int j = 0; j < list[i].length(); j++)
            {
                if(isalpha(list[i].at[j])
                {
                    temp = temp + list[i][j];
                }
            }
            list[i] = temp;
            temp = "";        
        }
    
    }
    
    • 第一步:从列表中获取元素
    • 第 2 步:一次检查每个字符,看它是否是 字母值。有时有一个内置函数。 有时您必须创建一堆 if-then 语句或 switch-case 语句。
    • 步骤 3:将所有字母值附加到临时 变量
    • 第 4 步:将列表中的该元素重新分配给 temp 的值

    【讨论】:

    • 我正在使用python atm,我很抱歉没有包括那个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2023-02-02
    • 1970-01-01
    • 2018-09-28
    • 2011-03-31
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多