Python中,我输出的列表中总有转行符\n,怎样让它们消失?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中,我输出的列表中总有转行符\n,怎样让它们消失?相关的知识,希望对你有一定的参考价值。

在 Python 中输出列表时,如果其中的元素包含换行符,那么在输出时会将其显示出来。要删除这些换行符,可以使用字符串的 replace() 方法将其替换为空字符串。
例如,如果你有一个名为 my_list 的列表,你可以使用以下代码将其中的换行符删除:
my_list = [x.replace('\n', '') for x in my_list]
这会对 my_list 中的每个元素调用 replace() 函数,将其中的换行符替换为空字符串。
或者使用 strip() 方法,该方法会删除字符串的左右两端的空格和换行符:
my_list = [x.strip() for x in my_list]
请注意,如果列表中的字符串来自文件或网络,在读取字符串之前就可以使用这些函数来消除换行符。
如果要消除列表中所有字符串的换行符,可以使用 map() 函数并传入 strip() 或 replace() 函数,如下所示:
my_list = list(map(str.strip, my_list))

my_list = list(map(lambda x: x.replace('\n', ''), my_list))
这两个方法都能够将列表中所有元素的换行符删除。
参考技术A 如果你想从Python列表中删除换行符,你可以使用列表推导式和strip()方法。以下是一个示例程序:
# 定义包含换行符的列表
lines = ["hello\n", "world\n", "python\n"]
# 使用列表推导式和strip()方法删除换行符
lines = [line.strip() for line in lines]
# 打印结果
print(lines)
参考技术B 要看你具体的指令和代码情况。
如果你是对文件进行读写,那么要看读写文件的方法的使用情况。以及参数的传递情况,看是否有多余的不可见字符或是默认添加了换行符。
如果你只是通过print方法进行回显输出,那么可以尝试使用print方法的内置参数调用,在输出后不自动换行。例如:print("123456", end=""),这样,回显出123456这个字符串以后,不会自动换行。
参考技术C 在使用print方法的时候,跟他传递一个end参数
比如: print("123456", end="")
参考技术D s="dfghh\n"
print(s.rstrip("\n"))

找水王

一.设计思路

  1.由于题设中给出条件“水王”的发贴数超过列表中总发贴数的一半(即最少比一半多一个);

  2.假设“水王”的发贴数恰好是总发贴数的一半多一个,而“水王”的贴子是均匀分布在贴子列表中的,即每两个相邻的贴子中总有一个“水王”的贴子;

    a.如果贴子总数为奇数,且每两个相邻贴子中总是“水王”的贴子在前(在后亦然),则最后必然剩下一个“水王”的贴子;

    b.如果贴子总数为偶数,且每两个相邻贴子中总是“水王”的贴子在前(在后亦然),则最后必然剩下两个“水王”的贴子。

  3.如果“水王”的发贴数更多时,则两个相邻贴子都是“水王”的概率更高;

  4.根据以上的分析,可以用一个函数按序号依次将贴子列表中的每两个相邻贴子的ID比较,如果相同,则保留一个ID号存放于一个一维数组中;如果不相同,

则跳过,进行下面两个相邻贴子ID号的比较;

  5.如果所得一维数组中只有一个元素,则该ID号即为“水王”的ID号;如果所得一维数组中超过一个元素,则将该一维数组递归调用比较函数,直到一维数组中只有一个元素。

二.代码实现

 1 #include<iostream>
 2 #include<fstream>
 3 #include<string>
 4 #define N 100
 5 using namespace std;
 6 
 7 string findM(string str[],int num)
 8 {
 9     string real;    //记录查找到的水王ID号
10     string next[N];    //按序号将ID号两两比较,若相同,则将该ID号保留一个存放于next[N]中;若不相同,则跳过
11     int i;
12     int length=0;    //记录每次生成的数组next的长度
13     for (i = 0; i < num; i+=2)
14     {
15         if ((str[i] == str[i + 1]&&i+1<num)||i+1==num)
16         {
17             next[length] = str[i];
18             length++;
19         }
20     }
21     //当数组next中只有一个元素时,该元素即为所找水王
22     if (length == 1)
23     {
24         real = next[0];
25     }
26     else
27     {
28         real=findM(next, length);
29     }
30     return real;
31 }
32 
33 int main()
34 {
35     ifstream file("myfile.txt");
36     int num[N];    //存放序号
37     string str[N];    //存放各序号对应的ID号
38     string gfind;    //获得的水王的ID号
39     int n=0;    //存放发帖表行数
40     while (file>>num[n]>>str[n])
41     {
42         n++;
43     }
44     cout << "发帖表信息:" << endl;
45     cout << "序号\\t贴主ID号" << endl;
46     for (int i = 0; i < n; i++)
47     {
48         cout << num[i] << "\\t"<<str[i]<<endl;
49     }
50     gfind=findM(str, n);
51     cout << "\\n";
52     cout << "水王是:";
53     cout << gfind << endl;
54     file.close();
55     return 0;
56 }

三.实验截图

技术分享

技术分享

四.个人总结

以上是关于Python中,我输出的列表中总有转行符\n,怎样让它们消失?的主要内容,如果未能解决你的问题,请参考以下文章

找水王

JS脚本alert方法输出内容怎么换行?

java中回车符\r的问题

C指针变量

java 转义符是啥?起啥用?怎么用?

Python二维列表,矩阵算式输出后格式的问题,请问这怎么把数字对齐?