我有一个文本文件'a 2hello 3fox 2hen 1dog'
,其中包含strip
我想读取该文件,然后将所有项目添加到列表中,然后'a hello fox hen dog'
整数,这样它将导致列表看起来像这样['a 2hello 3foz 2hen 1dog']
我尝试了这个,但我的代码无效。结果是newList = []
filename = input("Enter a file to read: ")
openfile = open(filename,'r')
for word in openfile:
newList.append(word)
for item in newList:
item.strip("1")
item.strip("2")
item.strip("3")
print(newList)
openfile.close()
。谢谢
SELECT * FROM my_table WHERE my_column LIKE '%\%%' ESCAPE '\';
答案 0 :(得分:4)
str.strip([chars])
返回带有前导和的字符串的副本 尾随字符已删除。 chars参数是一个字符串指定 要删除的字符集。如果省略或无,则为chars 参数默认为删除空格。 chars论证不是 字首或字尾;相反,它的所有值组合都被剥离了:
Strip不会修改字符串,在删除提到的字符后返回字符串的副本。
>>> text = '132abcd13232111'
>>> text.strip('123')
'abcd'
>>> text
'132abcd13232111'
您可以尝试:
out_put = []
for item in newList:
out_put.append(item.strip("123"))
如果您要删除所有123
,请使用正则表达式re.sub
import re
newList = [re.sub('[123]', '', word) for word in openfile]
注意:这会从每行中删除所有123
答案 1 :(得分:3)
指针:
strip
会返回 new 字符串,因此您需要将其分配给某些内容。 (更好的是,只使用列表理解)read
然后split
在空格上with
。 close
语句使您无需手动调用strip
。filename = input("Enter a file to read: ")
with open(filename, 'r') as openfile:
new_list = [word.strip('123') for word in openfile.read().split()]
print(new_list)
接受多个字符,因此您无需再拨打三次。代码:
['a', 'hello', 'fox', 'hen', 'dog']
这将为您提供一个类似于' '.join(new_list)
的列表
如果要将其重新转换为字符串,可以使用#include <thread>
#include <atomic>
#include <cassert>
#include <string>
std::atomic<int> global;
void producer()
{
global.store(10, std::memory_order_release);
}
void consumer1()
{
int a = global.load(std::memory_order_acquire);
printf("a in consumer1 %d\n", a);
}
void consumer2()
{
int a = global.load(std::memory_order_acquire);
printf("a in consumer2 %d\n", a);
}
int main()
{
global.store(-1, std::memory_order_seq_cst);
std::thread t1(producer);
std::thread t2(consumer1);
std::thread t3(consumer2);
t1.join(); t2.join(); t3.join();
}
答案 2 :(得分:2)
python中有几种类型的条带,基本上它们在每一行中都删除了一些指定的char。在您的情况下,您可以使用lstrip
或strip
:
s = 'a 2hello 3fox 2hen 1dog'
' '.join([word.strip('0123456789') for word in s.split()])
输出:
'a hello fox hen dog'
答案 3 :(得分:2)
以这种方式调用Python中的函数:
function
这会使用参数调用result
并将结果存储在public static Node readTree(Scanner in) {
Queue<Node> queue = new LinkedList<Node>();
Node root = new Node(1);
queue.add(root);
while (!queue.isEmpty()) {
Node node = queue.poll();
int left = in.nextInt();
int right = in.nextInt();
if (-1 != left) {
node.left = new Node(left);
queue.add(node.left);
}
if (-1 != right) {
node.right = new Node(right);
queue.add(node.right);
}
}
return root;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
in.nextInt(); // number of nodes is not used.
Node result = readTree(in);
}
。
如果您丢弃函数调用结果,就会丢失它。
答案 4 :(得分:0)
另一种使用方式是:
l=[]
for x in range(5):
l.append("something")
l.strip()
这将删除所有空格